Javascript 生产中JS文件的Rails 3.1资产管道中的指纹错误
在部署CSS和图像之后,我将项目部署到服务器上-它可以工作,但是JS不能工作-404。HTML和公共/资产中的JavaScript哈希-不匹配Javascript 生产中JS文件的Rails 3.1资产管道中的指纹错误,javascript,ruby-on-rails,assets,Javascript,Ruby On Rails,Assets,在部署CSS和图像之后,我将项目部署到服务器上-它可以工作,但是JS不能工作-404。HTML和公共/资产中的JavaScript哈希-不匹配 In HTML: application-6851a5d9167871936c32da723dca0f23.js In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js 您是否运行了“rake资产:干净资产:预编译” 此外,如果您使用的是GIT,那么您还需要“GIT rm”旧版
In HTML: application-6851a5d9167871936c32da723dca0f23.js
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js
您是否运行了“rake资产:干净资产:预编译” 此外,如果您使用的是GIT,那么您还需要“GIT rm”旧版本的资产。如果通过推送工作区(例如Heroku)来更新生产环境,则需要对其他版本控制系统执行类似的操作
在您的开发环境中,资产是直接从源代码库获取的——因此,如果您更改了它们,就不需要再次预编译(在开发过程中节省时间)。但是,你可以很容易地发现这些资产。重新启动应用程序为我修复了它 例如,在应用程序的根目录中:
touch tmp/restart.txt
或者在Capistrano 3的deploy.rb中:
你能给你的问题添加一些信息吗(直接编辑):html是什么意思?你是说源代码中Rails生成的URL吗?我怀疑它在开发中起作用。你是怎么得到这些资产的<代码>rake资产:预编译?您在配置中更改了什么吗?这是一个新的rails应用程序还是一个迁移的应用程序?是的,我指的是rails在我的源代码中生成的URL。是的,它在开发中起作用,但在生产中不起作用。我通过rake资产:precompile获得资产。如果我在应用程序中检查了新的rails应用程序,则HTML代码和文件路径中的哈希值是相同的。您是否检查了包含每个文件指纹的
manifest.yml
?您在生产中使用哪台服务器?
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