我无法使用WebRick在生产模式下测试我的网站,因为它引发了缓存错误。在开发和测试模式下,一切都完美运行。
我已经在config/environments/production.rb中设置了此选项:
config.serve_static_assets = true
然后我跑了:
bundle exec rake assets:precompile
现在,我启动服务器:
david$ rails s -e production
=> Booting WEBrick
=> Rails 3.2.1 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-31 19:52:35] INFO WEBrick 1.3.1
[2012-01-31 19:52:35] INFO ruby 1.9.3 (2011-10-30) [x86_64-darwin11.2.0]
[2012-01-31 19:52:35] INFO WEBrick::HTTPServer#start: pid=13329 port=3000
当我去http://localhost:3000时,我得到“很抱歉,但是出了点问题。”。在终端中,这是输出的内容:
cache: [GET /] miss
我在这里停滞了。我不知道该怎么办。
最佳答案
问题在于 Assets 管道,必须在生产模式下对其进行正确配置,因为不会自动预编译文件。
就我而言,我正在插入一个仅存在于一页中的javascript文件(带有javascript_include_tag
),因此它不包含在application.js list 中。
在这种情况下,运行assets:precompile
时 Assets 管道不会预编译文件。
为了包括丢失的文件,我们必须编辑config/environments/production.rb
并添加以下行:
config.assets.precompile += %w( script1.js )
您会注意到该行已经存在,但是已对其进行了注释。阅读评论以获得更多说明。有关更多信息,请查看official asset pipeline guide。
关于ruby-on-rails - 为什么使用WebRick在生产中得到 "cache: [GET/] miss"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085198/