2

我在生产模式下运行 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

应用程序在开发模式下工作正常。在那之前 assets:precompile 一切都很好。经过几个小时的帖子搜索,我找不到任何解决问题的方法。请帮我解决这个问题!

4

1 回答 1

6

在生产模式下,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
于 2012-11-20T10:39:37.480 回答