2012-04-25 11 views
7

Recentemente ho scritto un post sul blog asset pipeline e ho appreso che la cartella lib/assets deve essere inclusa nell'elenco dei percorsi delle risorse. Se creo una nuovissima app Rails usando la 3.2.2, avvia la console e poi eseguo il comando y Rails.application.config.assets.paths Non vedo lib/assets. Non dovrebbe essere incluso di default?Perché una nuova applicazione di Rails 3.2.2 non include lib/assets nei percorsi degli asset?

Ecco come sono arrivato:

$ rails new example 
$ cd example 
$ rails c 
>> y Rails.application.config.assets.paths 
--- 
- /Users/eberry/Playground/example/app/assets/images 
- /Users/eberry/Playground/example/app/assets/javascripts 
- /Users/eberry/Playground/example/app/assets/stylesheets 
- /Users/eberry/Playground/example/vendor/assets/javascripts 
- /Users/eberry/Playground/example/vendor/assets/stylesheets 
- /Users/eberry/.rvm/gems/ruby-1.9.2-p290/gems/jquery-rails-2.0.2/vendor/assets/javascripts 
- /Users/eberry/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.2.2/lib/assets/javascripts 
=> nil 
>> 

Qualsiasi aiuto sarebbe molto apprezzato.

+0

Per gli interessati, [qui è la parte pertinente della guida dei binari] (http://guides.rubyonrails.org/asset_pipeline.html#asset-organization). –

+0

potrebbe essere una decisione di progettazione? per mantenere il numero di percorsi al minimo. Forse i progettisti ritenevano che lib/assets non sarebbero stati usati a meno che lo sviluppatore dell'applicazione non inserisse parte del proprio codice in/lib, quindi avrebbe dovuto abilitare le risorse basate su/lib? lib/vendor è lì per impostazione predefinita perché è lì che gli sviluppatori gem normalmente inseriscono le loro cose. Un'indagine – RadBrad

+0

Il codice sorgente in Rails è disponibile all'indirizzo https://github.com/rails/rails/blob/master/railties/lib/rails/engine.rb#L574. Non sembra che l'abbiano escluso. – cavneb

risposta

3

Non ho Rails installato su questo computer, ma dal riferimento di origine sembra che lib/assets non venga mai incluso, ma qualsiasi sottosistema lo farebbe.

Provare a creare lib/assets/javascripts e vedere se è incluso automaticamente.

1

Avete qualcosa in una delle cartelle lib? Ho un file js nella mia cartella lib/assets/javascripts e quando controllo i miei percorsi delle risorse, viene visualizzato solo quel percorso, cioè lib/assets/javascripts /, sebbene non sia lib/assets/images o lib/assets/stylesheet , dal momento che non ho creato quelle cartelle.

I'm on Rails 3.2.3.

0

Ho incontrato lo stesso problema su rotaie 3.2 dovete mettere i vostri script nella cartella "attività/javascript" e che riceveranno in dotazione, altrimenti no.

0

Qualsiasi sottocartella (non solo fogli di stile/immagini/javascript) creata sotto lib/asset verrà aggiunta al percorso di caricamento.

Testato con rotaie 3.2.11.

Utilizzare "rails c" e digitare "y Rails.application.config.assets.paths" per verificare il percorso della risorsa.

Suppongo che sia lo stesso con il fornitore/i beni e le app/risorse, ma non l'ho verificato.

1

Ho avuto lo stesso problema.

Inserire almeno un file, ad esempio in lib/assets/javascripts, quindi riavviare l'app.

Ora rails c e Rails.application.config.assets.paths devono contenere lib/assets/javascripts.

Problemi correlati