2017-02-14 92 views
0

我的Rails應用程序的公用文件夾中有一些文件不屬於資產管道(例如sitemap.xml或可嵌入小部件的.js文件)。使用Heroku上的Rails3更新公用文件夾中的靜態資產

雖然我沒有更新public/assets文件夾中的資產的問題,但我有更新這些靜態文件的麻煩。奇怪的是,我可以添加新文件,但我無法更新現有文件。當我在開發中更新它們時,在生產環境(Heroku)中不會考慮這些修改。

我已經嘗試了很多東西,但似乎無法找到解決方案。任何想法 ?

回答

-1

/public/assets文件夾是自動生成的,因此您不能直接向其中插入文件。事實上,這個文件夾應該在你的.gitignore,這將解釋爲什麼你的改變不會傳播到生產。也就是說,他們沒有被包含在你的提交中。

完全靜態資產(例如您的sitemap.xml)應進入/public文件夾。 js文件和其他實際上是網站執行的一部分的文件夾應該位於/app/assets/javascripts(僅用於此站點的代碼),/lib/assets/javascripts(用於您在公司/項目中共享的代碼),/vendor/assets/javascripts文件夾(用於來自外部源的代碼) 。

你可以在這裏閱讀更多:http://guides.rubyonrails.org/asset_pipeline.html

+0

謝謝,但你沒有真正回答這個問題。我正在談論公共文件夾中的文件(不是公共文件夾) – Emmanuel

0

Heroku上有一個不變的文件系統,這意味着你不能更改,或添加到文件系統。你需要一個不同的策略。從另一個服務提供文件,將它們放在一個數據庫中,或將它們從外部連接到Amazon S3等。

但我不確定我是否完全理解您所指過程中的哪一部分。您是在談論在構建中生成的文件,還是在運行服務期間修改的文件?

+0

例如,我在公用文件夾中有一個sitemap.xml文件,我想在該文件夾中添加一個或一個widget.js文件我想編輯。現在我必須創建一個新的widget2.js文件並指向這個新文件,我似乎無法更改生產中的widget.js。 – Emmanuel

+0

你的發展流程是什麼?你是否在說你修改了你的repo(我假設的git),然後把這些修改推到Heroku上,當網站啓動時你看不到修改?你正在使用Heroku CLI推送或GitHub集成? –

+0

是的,這就是我要說的 - 我正在使用Heroku CLI – Emmanuel

相關問題