[英]Rails and Javascript in production environment
您好Stack Overflow社區! 我是Ruby on Rails的新手,在我的第一個項目快要結束時,我在准備好應用程序生產時遇到了一些麻煩。
我的第一個問題是我需要刷新頁面才能使我的個人jQuery工作。 我通過將jquery-turbolinks gem添加到項目並將jquery.turbolinks添加到清單文件來解決此問題。
但是,由於某種原因,這種快速解決方案不適用於我的生產環境。 因此,我只是更改了清單文件中某些內容的順序,將config.serve_static_files更改為false,將config.assets.compile更改為true(在production.rb中)。 所以現在我的JS都沒有投入生產。
然后,從網上收集的信息中,我運行了捆綁執行rake asset:precompile。 現在,我的JS或CSS效果在生產中都不明顯!
所以最后,為了消除這種錯誤,我運行了捆綁執行程序rake asset:clean。 現在終端抱怨用git提交更改時我有“未跟蹤的文件”。
顯然,我處於絕對混亂的境地。 除了這些錯誤之外,我的項目還運行得很順利,所以任何幫助將不勝感激。
PS:一切都在開發環境中完美運行...
歡迎來到StackOverflow!
從您的解釋來看,在本地運行預編譯似乎不太奏效,並且嘗試運行rake assets:clean
使得Git認為需要進行更改。
在Sprockets中,運行rake assets:clean
只會從公共/資產中刪除舊資產(保留最近的3份副本)-[ 來源 ]。 運行此命令會更改您的public / assets目錄,並且尚未提交這些更改,因此終端會抱怨。
如果您希望擦除public/assets
並從頭開始生成資產,則可以執行以下操作:
rake assets:clobber
RAILS_ENV=production bundle exec rake assets:precompile
使用clobber
將破壞資產目錄,而其后的precompile
命令將以應反映您的生產環境的方式重建資產。 提交這些更改並部署后,新資產應在生產中正確顯示。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.