在调试这个问题的过程中,我尝试在本地以生产模式运行我的应用程序,但它没有提供任何资产。此外,我有一个Heroku应用程序中的staging环境(与我的生产Heroku应用程序分开),也显示没有任何资产的HTML。
为了调试,我:
以下是我在layout/application.html.erb中链接样式表和JavaScript的方法:
为了调试,我:
- 关闭服务器
- 清除tmp/cache/assets
- 删除public/assets
- 运行
rake assets:precompile
- 启动服务器
rails s -e production
- 访问页面并打开Web检查器,当单击应用程序.css链接的展开箭头时,它会显示
重新加载页面以获取http://localhost:3000/assets/application-e1f3e0c864a153c7iu66f8772a886376.css的源代码
- 重新加载页面什么都没有发生。
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Staging.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Application.rb:
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false
以下是我在layout/application.html.erb中链接样式表和JavaScript的方法:
<%= stylesheet_link_tag "application", :media => "screen, handheld" %>
<%= javascript_include_tag "application" %>
= stylesheet_link_tag "application", :media => "all"
。 - BBQ Chefconfig.assets.compile
设置为true
,而不是默认的false
- 但如果我使用Passenger则不需要。 - sameers