我部署CSS和圖像後部署項目到服務器 - 它的工作,但JS不工作 - 404。在HTML和公共/資產 - 不匹配。錯誤的指紋Rails的3.1資產管道生產中的JS文件
In HTML: application-6851a5d9167871936c32da723dca0f23.js
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js
我部署CSS和圖像後部署項目到服務器 - 它的工作,但JS不工作 - 404。在HTML和公共/資產 - 不匹配。錯誤的指紋Rails的3.1資產管道生產中的JS文件
In HTML: application-6851a5d9167871936c32da723dca0f23.js
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js
你運行'rake assets:clean assets:precompile'嗎?另外,如果您使用的是GIT,那麼您也需要'git rm'舊版本的資產。如果您通過推送工作區(例如Heroku)更新生產環境,則需要爲其他版本控制系統執行類似操作。
在您的開發環境中,資產直接從您的源代碼庫中獲取 - 因此如果您更改它們,則無需再次預編譯(在開發過程中節省您的時間)。但是,由於這個原因,你可以很容易地找到資產。
重新啓動應用程序爲我解決了它。
E.g.在應用程序的根目錄:
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
你能(通過編輯直接)添加一些信息,你的問題:什麼是HTML的手段?你的意思是你的源代碼中由Rails生成的URL?我懷疑它在開發中起作用。你做了什麼來獲得資產? '耙資產:預編譯'?你有沒有改變配置中的任何東西?這是一個新的rails應用程序還是遷移的應用程序? – mliebelt
是的,我的意思是在我的源代碼中由Rails生成的URL。是的,它適用於開發,但不適用於生產。我通過rake資產獲得資產:預編譯。那個新的rails應用程序 –
我使用我的應用程序進行了檢查,在HTML代碼和文件路徑中散列值相同。你是否檢查過每個文件包含指紋的'manifest.yml'?你在生產中使用哪個服務器? – mliebelt