我目前遇到与本文所述完全相同的问题:Rails not serving assets in production or staging environments。
我在Windows 7的生产环境中运行Rails 4.0.4(因此很容易出现问题,不幸的是不能使用Linux)。我已经运行rake assets:clobber
以确保清理所有内容然后RAILS_ENV=production rake assets:precompile
并且它成功而没有错误或警告。所有文件都出现在我的public / assets文件夹中,使用Windows资源管理器我可以在application.js和application.css中查看文本,并正确显示图像。但是当我尝试访问localhost:3001 / assets / application.js时它是空白的,与application.css相同,并且图像文件出现错误。我每次更改设置和预编译后都重新启动了服务器。
当我查看日志时,它表示页面呈现成功,没有像我在其他帖子中看到的“无路由匹配”错误。因此,资产被发现,但由于某种原因,他们没有得到适当的服务。
这是我的production.rb:
ABC::Application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.action_dispatch.x_sendfile_header = "X-Sendfile"
config.serve_static_assets = true
config.action_mailer.default_url_options = { :host => '' }
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = false
config.assets.digest = true
end
任何帮助都会非常感激,我已经坚持了将近两天!
答案 0 :(得分:0)
正当我完成这个问题的打字时,我终于遇到了另一个帖子,其中说标题已经设置但是没有正文,这听起来像我的问题。他们使用nginx并通过更改以下内容来解决问题:
# Specifies the header that your server uses for sending files
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
看到我没有使用Apache或者nginx,我注释掉了这两行,最后我的资产被提供了。事后似乎显而易见,但我认为无论如何我都会发布此内容以防其他人遇到同样的问题。