Rails: Rails.root.join se portan mal después de la implementación
Tengo, en mi directorio app / assets, los directorios javascripts y hojas de estilo, como cualquier aplicación Rails normal.
Sin embargo, también quería tener un directorio de complementos.
Ejemplo:
app/assets/plugins/myPlugin1/somefile.js
app/assets/plugins/myPlugin1/somefile.css
La cosa es que si uso
<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>
Me daría un error 404, como
/assets/javascripts/plugins/myPlugin1/somefile.js
no existe. Me di cuenta, entonces, que el directorio "plugins" estaba intentando acceder dentro de javascripts. Supongo que esto tiene algo que ver con "javascript_include_tag".
Después de investigar un poco, me di cuenta de que tenía que incluir esta línea en config / application.rb
config.assets.paths << Rails.root.join("app", "assets")
Y parecía funcionar. En WEBRick, en desarrollo, funcionó maravillosamente.
Ahora me desplegué con éxito en un servidor, precompilé los activos y pensé que estaba listo para comenzar.
El directorio
/public/assets/
fue creado. Todo en "app / assets / javascripts", "app / assets / stylesh, eets" y "app / assets / plugins" fueron precompilados a public / assets
¿Qué funcionó?
app/assets/javascripts/login.js
se pudo acceder en una vista que tenía
<%= javascript_include_tag 'login.js' %>
LO QUE NO FUNCIONÓ
Archivos que pertenecían a "complementos".
app/assets/plugins/myPlugin1/somefile.js
fue precompilado a
public/assets/myPlugin1/somefile.js
Pero cuando corrí
<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>
trata de acceder
/javascripts/plugins/myPlugin1/somefile.js
cuando la ruta correcta, según mi experiencia en desarrollo, sería:
/myPlugin1/somefile-(some hex hash).js
Entonces, como puede ver, en producción estoy experimentando el mismo problema que cuando no he agregado
config.assets.paths << Rails.root.join("app", "assets")
a application.rb
¿Cual podría ser el problema?