Rails 3.1 activos no resuelven el problema
que tienen una aplicación Rails 3.0.4, que puedo actualizar a 3.1.4 siguientes instrucciones de Railscast video: "Upgrading to rails 3.1".
Ahora tengo problemas con activos porque no se resuelven, dando mensajes de registro del servidor de la siguiente manera:
Started GET "/assets/application.css" for 127.0.0.1 at 2012-04-08 03:57:13 -0500
Served asset /application.css - 404 Not Found (15ms)
ActionController::RoutingError (No route matches [GET] "/assets/application.css"):
Rendered /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (14.3ms)
Started GET "/assets/application.js" for 127.0.0.1 at 2012-04-08 03:57:13 -0500
Served asset /application.js - 404 Not Found (35ms)
ActionController::RoutingError (No route matches [GET] "/assets/application.js"):
Estos archivos están en assets
directorio:
$ ls app/assets/*/application*
app/assets/javascripts/application.js app/assets/stylesheets/application.css
y contiene esto:
$ cat app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
$ cat app/assets/stylesheets/application.css
/*
*= require_self
*= require_tree .
*/
Supongo que todo está configurado. Aquí pongo algunos trozos de archivos:
Gemfile
, se encuentran bienes gemas requeridas:group :assets do gem 'sass-rails', '~> 3.1.3' gem 'coffee-rails', '~> 3.1.0' gem 'uglifier' end
application.rb
, tiene activos habilitados:config.assets.enabled = true config.assets.version = '1.0'
development.rb
:config.assets.compress = false config.assets.debug = true
finalmente ...
application.html.erb
diseño:<%= stylesheet_link_tag 'application' %> <%= javascript_include_tag 'application' %>
Etapa
Ahora estoy en el desarrollo medio ambiente.
pruebas
Si solicito
http://localhost:3000/assets/images/rails.png
, se lanzaNo route matches [GET] "/assets/images/rails.png"
, pero el archivo está ahí:$ ls app/assets/images/rails.png app/assets/images/rails.png
Luego ejecuto
rake assets:precompile
:$ bundle exec rake assets:precompile /usr/local/rvm/rubies/ruby-1.9.2-p318/bin/ruby /usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets /usr/local/rvm/rubies/ruby-1.9.2-p318/bin/ruby /usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets
El n, ejecutar servidor (
rails s
) y solicitar de nuevo una imagen (rails.png
):$ rails s => Booting WEBrick => Rails 3.1.4 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/http/mime_type.rb:101: warning: already initialized constant PDF [2012-04-08 04:53:06] INFO WEBrick 1.3.1 [2012-04-08 04:53:06] INFO ruby 1.9.2 (2012-02-14) [i686-linux] [2012-04-08 04:53:06] INFO WEBrick::HTTPServer#start: pid=16702 port=3000 Started GET "/assets/images/rails.png" for 127.0.0.1 at 2012-04-08 04:53:14 -0500 Served asset /images/rails.png - 404 Not Found (38ms) ActionController::RoutingError (No route matches [GET] "/assets/images/rails.png"): Rendered /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (125.2ms)
Así ¿Qué ocurre?, ¿Estoy haciendo algo mal?
¿Es esto sólo en el modo de producción? ¿Has ejecutado 'bundle exec rake assets: precompile'? Además, ¿tiene la biblioteca de piñones incluida? – pjumble
@pjumble Aún no, ¿Es necesario incluso si estoy en un entorno de desarrollo? – Israel
Supuse que estaba en modo de producción, pero no, en el modo de desarrollo no tiene que precompilar los activos. Si elimina '/ images /' de la URL, ¿funciona la imagen? ('http: // localhost: 3000/assets/rails.png') – pjumble