rails之后没有路由匹配:预编译

时间:2012-11-20 10:33:04

标签: ruby-on-rails asset-pipeline

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

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

1 个答案:

答案 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