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

发布于 2024-12-11 13:37:54 字数 237 浏览 0 评论 0原文

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

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

I'm deploying the project to the server after deploying CSS and images - it's working, but the JS doesn't work - 404. JavaScript hash in HTML and public/assets - mismatch.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可遇━不可求 2024-12-18 13:37:54

您是否运行了“rake asset:clean asset:precompile”?

另外,如果您使用 GIT,您还需要“git rm”旧版本的资产。如果您的生产环境是通过推送工作区(例如 Heroku)来更新的,您将需要对其他版本控制系统执行类似的操作。

在您的开发环境中,资产是直接从源库中获取的 - 因此,如果您更改它们,则无需再次预编译(在开发过程中节省时间)。但是,因此您可以很容易地偶然发现这些资产。

Did you run 'rake assets:clean assets:precompile'?

Also, if you're using GIT, you'll need to 'git rm' the older versions of the assets too. You'll need to do something similar for other version control systems if you Production environment is updated by pushing a workspace (e.g. Heroku).

In your Development environment, Assets are fetched directly from your source base - so if you change them, you don't need to precompile again (saving you time during development). But, you can stumble on the assets fairly easily because of that.

装纯掩盖桑 2024-12-18 13:37:54

重新启动应用程序为我解决了这个问题。

例如,在应用程序的根目录中:

touch tmp/restart.txt

或在 Capistrano 3 的 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

Restarting the app fixed it for me.

E.g. in the app's root directory:

touch tmp/restart.txt

or in Capistrano 3's 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文