Ruby on rails 为什么我会得到;缓存:[GET/]miss";在生产中使用WebRick?

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

我无法在生产模式下使用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
当我去看电影时,我会说“很抱歉,出了点问题。”。在终端中,这是它的输出:

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,我理解我的错误