簡體   English   中英

生產環境中的Rails和Javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM