La mia domanda è simile a questo Rails 3.2 Asset Pipeline with Passenger Endless Errors tranne che quando cerco di andare effettivamente aRails 3.2 Asset Pipeline con sottile e Apache, non trovando beni
<link href="/assets/application-eed7996ee9017637f923133371ab3e92.css" media="all" rel="stylesheet" type="text/css" />
ho un 404. Ecco la cosa I don' t capire. Sta cercando in/assets /, ma quando guardo il codice che è stato distribuito, le risorse sono solo in/public/assets, che in realtà è un link simbolico a/var/www/myapp/shared/assets. Quindi, in quale parte del mondo è responsabile comunicare all'app che la ricerca di contenuti/risorse produrrà risultati corretti?
Sto usando Rails 3.2.0, ruby-1.9.3-p125, distribuito su Ubuntu, Apache e Thin.
Devo chiarire: Le mie risorse sono effettivamente distribuite sul server. Tutto funziona perfettamente fino a quando non devono essere serviti, nel qual caso production.log mi dice che li sta cercando in /assets/application-eed7996ee9017637f923133371ab3e92.css, di cui 404.
per ogni richiesta di mia thin.log dice
cache: [GET /] miss
e production.log dice
ActionController::RoutingError (No route matches [GET] "/assets/application-abecf2e096af9ee80697fd49e79a55e7.js"):
UPDATE grazie @Brandan per l'aiuto. Le mie risorse sono effettivamente in RAILS_ROOT/public/assets
. Ho messo questo nel mio file vhost Apache:
DocumentRoot /var/rails/myappname/current/public
RewriteEngine On
XSendFile On
XSendFilePath /var/rails/myappname #not even sure if this line is needed
<LocationMatch "^/assets/.*$">
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 year"
</LocationMatch>
miei RAILS_ROOT/config/ambienti/production.rb impostazioni:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
come crei i tuoi link? – apneadiving
nel mio layout dico '<% = stylesheet_link_tag" application ",: media =>" all "%>' e '<% = javascript_include_tag" application "%>' – DelPiero
Hai precompilato le tue risorse? – ka8725