Ruby on rails 为什么我会得到;缓存:[GET/]miss";在生产中使用WebRick?
我无法在生产模式下使用WebRick测试我的网站,因为它会引发缓存错误。在开发和测试模式下,一切都能完美工作 我在config/environments/production.rb中设置了此选项:Ruby on rails 为什么我会得到;缓存:[GET/]miss";在生产中使用WebRick?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,webrick,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Webrick,我无法在生产模式下使用WebRick测试我的网站,因为它会引发缓存错误。在开发和测试模式下,一切都能完美工作 我在config/environments/production.rb中设置了此选项: config.serve_static_assets = true 然后我跑: bundle exec rake assets:precompile 现在我启动服务器: david$ rails s -e production => Booting WEBrick => Rails 3
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
当我去看电影时,我会说“很抱歉,出了点问题。”。在终端中,这是它的输出:
cache: [GET /] miss
我被困在这里了。我不知道该怎么办。这条关于缺少页面的消息发送到Rack::Cache中间件。 如果您不需要在rails应用程序中使用页面缓存,只需删除config/application.rb文件中的Rack::Cache即可:
require 'rack/cache'
module DemoApp
class Application < Rails::Application
config.middleware.delete Rack::Cache
# ...
end
end
需要“机架/缓存”
模块DemoApp
类应用程序
问题在于资产管道,它必须在生产模式下进行良好配置,因为文件不会自动预编译
在我的例子中,我插入了一个javascript文件(带有javascript\u include\u标记
),它只存在于一个页面中,因此它没有包含在application.js清单中
在这种情况下,在运行assets:precompile
时,资产管道不会预编译文件
为了包含丢失的文件,我们必须编辑config/environments/production.rb
并添加以下行:
config.assets.precompile += %w( script1.js )
您会注意到这一行已经存在,但它已被注释。阅读评论以获得更多澄清。有关更多信息,请查看。作为临时解决方案,下面是我的窍门 我将
config/environments/production.rb
文件更改为config.assets.compile
行,从false
更改为true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
要在生产环境中运行应用程序而不获取缓存:[get/]miss 请检查您的{project}/public文件夹,他们的任何资产文件夹是否存在 如果没有,则使用 bundle exec rake资产:预编译 完成后: 在production.rb中将config.assets.compile设置为true 然后在生产环境中重新启动WebApp 这种方法对我有用,希望对你有用
如果您使用的是rails 3.2.0,您将得到[get/]miss,但您的应用程序将正常工作。您是否更改了application.rb中的
config.cache\u store
。production.log
中是否有错误?我不是反对票-但告诉OP不要使用功能并不能解决他的问题。@Basic Thx,我理解我的错误