jpw*_*ynn 29 ruby-on-rails asset-pipeline
我的应用程序在开发模式下运行正常
当我在生产模式下运行时RAILS_ENV=production rails s,我的.css或.js文件都没有被加载.(我使用了预编译资产RAILS_ENV=production bundle exec rake assets:precompile.)
webrick日志显示:
ActionController :: RoutingError(没有路由匹配[GET]"/assets/application-a73ce43be7bf75953cd0c60b2b4a7eb0.js"):
和
ActionController :: RoutingError(没有路由匹配[GET]"/assets/application-986dd79830088c416c1632c12999ec69.css"):
文件已编译(根据log\production.log文件),我的public/assets目录确实显示了带有和没有指纹的文件:
ls public/assets
application-986dd79830088c416c1632c12999ec69.css
application-986dd79830088c416c1632c12999ec69.css.gz
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js.gz
application.css
application.css.gz
application.js
application.js.gz
Run Code Online (Sandbox Code Playgroud)
Dyl*_*kow 47
默认情况下,Rails不在生产模式下提供静态资产.如果要禁用此功能并提供静态资源,请config/environments/production.rb使用以下命令更新文件:
config.serve_static_assets = true
Run Code Online (Sandbox Code Playgroud)
Rails默认配置背后的原因是它假设您将在生产模式(Apache,Nginx等)中运行标准Web服务器,然后将请求代理到您的Rails应用程序.由于资产是预编译的,Apache/Nginx /等.可以直接为他们服务,而无需与您的Rails流程交谈.
| 归档时间: |
|
| 查看次数: |
7352 次 |
| 最近记录: |