生产中JS文件的Rails 3.1资产管道中的指纹错误

时间:2011-10-24 10:20:06

标签: javascript ruby-on-rails assets

我在部署CSS和图像之后将项目部署到服务器 - 它正在工作,但JS不起作用 - 404. HTML和公共/资产中的JavaScript哈希 - 不匹配。

In HTML: application-6851a5d9167871936c32da723dca0f23.js
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js

2 个答案:

答案 0 :(得分:0)

您是否运行了资产:清洁资产:预编译'?

另外,如果你正在使用GIT,那么你需要“git rm'资产的旧版本也是如此。如果通过推送工作区(例如Heroku)更新生产环境,则需要为其他版本控制系统执行类似的操作。

在您的开发环境中,资源直接从您的源代码库中提取 - 因此,如果您更改它们,则不需要再次预编译(在开发期间节省您的时间)。但是,由于这个原因,你可以相当容易地偶然发现资产。

答案 1 :(得分:0)

重新启动应用程序为我修复了它。

E.g。在应用程序的根目录中:

touch tmp/restart.txt

或在Capistrano 3&#39> deploy.rb

namespace :deploy do
  desc 'Restart application'
  task :restart do
    on roles(:app) do
      within release_path do
        execute :touch, 'tmp/restart.txt'
      end
    end
  end

  after 'deploy:publishing', 'deploy:restart'
end