2015-08-26 43 views
1

我有一個網站在Django,Heroku上運行。 我需要爲第三方插件添加一些靜態JavaScript文件。將靜態的一些靜態文件位置從/static/file.js更改爲/file.js

我新增加的文件位於domain.com/static/filename.js。 我需要他們在domain.com/filename.js

如何僅製作新增的Javascript文件domain.com/filename.js

如果信息不足,請詢問評論中需要哪些代碼。

回答

3

我在這種情況下,第一選擇將是解決什麼是阻止你把它在文件到/static/。我無法想象任何一半體面的第三方插件會要求這些文件在根目錄中;必須有一些方法來配置它從子目錄中工作。如果沒有,我會分叉項目並添加選項,然後嘗試讓它們合併回來。我意識到你可能已經探索過這個選項,但是你能給我們一些關於你正在嘗試使用的插件的更多細節,以及它需要進入根目錄的原因嗎?這真的是最好的解決方案。

如果你真的必須在根目錄下有這個文件,並且想把它保存爲你的django項目的一部分,我會嘗試將文件符號鏈接到公共根目錄下。這意味着它將在兩個地點都可用;我看不出爲什麼這會是一個問題,但你確實在根中指定了「ONLY」,我相信你有你的理由;在這種情況下,也許您可​​以將您的Web服務器配置爲從/static/filename.js重定向到/filename.js

最後,你在技術上可以更改設置STATIC_URLSTATIC_ROOT在根目錄指向,但是這聽起來像一個非常可怕的想法給我。如果你有這麼多但仍然需要這樣做,將文件完全從你的django項目中取出並手動將它放入你的web根目錄會好得多。

+1

在這種情況下,將符號鏈接或將文件移出django項目並移入Web根目錄似乎是最佳選擇。 – radiac

0

如果有一對夫婦只這些文件的,我想你可以做到以下幾點:

  • 爲每個要以服務
  • 掛鉤這些URL中的文件創建URL高達一種觀點認爲,返回與正確的內容
  • this snippet爲例視圖
+0

是'file_path =/app/static/filename.js'和'original_filename = filename.js'? – StackExchange