我在生产模式下运行Rails 3.2.8应用程序。 在完成“rake assets:precompile”之后,我遇到了路由问题。
我的日志信息是:
ActionController::RoutingError (No route matches [GET] "/corp/assets/application-cf24b2a92e88a02835248f85a9f3c462.css"):
此文件存在且位于当前位置。 我的路线在“corp”范围内。
我的配置"config/application.rb"
有"config.assets.enabled = true"
选项。
我的配置"config/environments/production.rb"
有以下选项:
config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
应用程序在开发模式下工作正常。 在那之前资产:预编译一切都很好。 经过几个小时的帖子搜索,我无法找到解决问题的方法。 请帮我解决这个问题!
答案 0 :(得分:5)
在生产模式下,Rails不负责提供静态资产。因此,您收到此错误。这由您的应用程序中的config/environment/production.rb
中的此设置控制:
config.serve_static_assets = false
您可以设置为true
或使用Apache或Nginx等真实服务器来提供静态资产。我怀疑Pow也可以这样做。
<强>更新强>
试试这个
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
# Generate digests for assets URLs
config.assets.digest = false