2012-04-25 9 views
7

Recientemente escribí una publicación de blog en el asset pipeline y descubrí que la carpeta lib/assets debería incluirse en la lista de rutas de activos. Si creo una nueva aplicación Rails usando 3.2.2, ejecuto la consola y luego ejecuto el comando y Rails.application.config.assets.paths No veo lib/assets. ¿No debería incluirse esto por defecto?¿Por qué la nueva aplicación Rails 3.2.2 no incluye lib/assets en las rutas de los activos?

Así es como llegué allí:

$ 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 
>> 

Cualquier ayuda sería muy apreciada.

+0

Para aquellos interesados, [aquí está la parte relevante de la guía de rieles] (http://guides.rubyonrails.org/asset_pipeline.html#asset-organization). –

+0

podría ser una decisión de diseño? para mantener el número de caminos al mínimo. Tal vez los diseñadores consideraron que los recursos de lib/no se usarían a menos que el desarrollador de la aplicación pusiera algo de su propio código en/lib, entonces tendría que habilitar los activos basados ​​en/lib. lib/vendor está ahí de forma predeterminada porque allí es donde los desarrolladores de gemas normalmente pondrían sus cosas. Solo una conjetura – RadBrad

+0

El código fuente en Rails se puede encontrar en https://github.com/rails/rails/blob/master/railties/lib/rails/engine.rb#L574. No parece que lo hayan excluido. – cavneb

Respuesta

3

No tengo los rieles instalados en esta computadora, pero de la referencia de la fuente parece que lib/assets nunca se incluiría, pero cualquier subcampo lo haría.

Intente crear lib/assets/javascripts y vea si eso se incluye automáticamente.

1

¿Tiene algo en cualquiera de las carpetas de lib? Tengo un archivo js en mi carpeta lib/assets/javascripts y cuando reviso mis rutas de activos, solo se muestra esa ruta, es decir, lib/assets/javascripts /, aunque no lib/assets/images o lib/assets/stylesheets , ya que no creé esas carpetas.

I'm on Rails 3.2.3.

0

me encontré con el mismo problema en los carriles de 3,2 usted tiene que poner las secuencias de comandos en la carpeta "activos/javascript" y van a ser incluido, de lo contrario no.

0

Cualquier subcarpeta (no solo hojas de estilo/imágenes/javascripts) que cree en lib/assets se agregará a la ruta de carga.

probado con rieles 3.2.11.

Utilice "rails c" y escriba "y Rails.application.config.assets.paths" para verificar la ruta del activo.

Supongo que es lo mismo con proveedor/activos y aplicación/activos también, pero no lo he verificado.

1

Tuve el mismo problema.

Ponga al menos un archivo, por ejemplo en lib/assets/javascripts, luego reinicie su aplicación.

Ahora rails c, y Rails.application.config.assets.paths debe contener lib/assets/javascripts.

Cuestiones relacionadas