2015-08-30 62 views
1

我有一個django項目,並希望硬編碼鏈接到CSS(我不想使用STATIC_FILES ...等)。原因是因爲我希望能夠點擊index.html並且它將在瀏覽器上工作(包括獲取css文件)。是否可以在django中對CSS鏈接進行硬編碼?

我把兩個的index.htmlindex.css在同一目錄下,並將此行的index.html:

<link rel="stylesheet" type="text/css" href="./index.css"/> 

當我雙擊的index.html,它完美地進口index.css

但是,當我用django開發服務器加載它並通過瀏覽器打開時,它不會導入index.css

應該怎樣做index.html需要index.css

+0

爲什麼你不想使用靜態文件夾? – StringsOnFire

+0

更重要的是,你爲什麼要使用Django?您的需求更適合於由Apache或nginx直接提供的靜態站點。 –

+0

我不想使用靜態的原因是因爲需要給第三方一些文件,他們不使用Django – Yura

回答

1

這是因爲瀏覽器使用基於目錄的方法。

說你的模板目錄如下:

/home/yura/project/templates/ 
          → index.html 
          → index.css 

/home/yura/project/templates/index.css打開您的瀏覽器的index.html說白了查找在同一目錄index.css,因此。

現在,當您運行開發服務器時,它不再是基於目錄的。有urls.py文件指定每個路徑通向的位置。
您可能有一條路線/,即使index.html未被調用,也會導致index.html。即使文件名爲blog_home.html,您也可以添加可能導致blog_home.html的路線/blog/
每個進入django的url都通過urls.py文件路由。 這是django的核心概念之一。 URL應該是用戶可打包的,並且可讀而不會像.php.html等那樣來自基於目錄的方法,如PHP或CGI。

由於您尚未定義名爲/index.css的路線,因此未找到index.css
如果你正在做的事情是一次性的,你最好的選擇就是增加一條路線到/index.css,提供index.css

否則沒有辦法做到這一點,因爲django不是基於目錄的,如上所述。

然後,您可能想要考慮爲什麼您希望能夠直接在瀏覽器中打開原始html文件,因爲它使得django模板語言完全無用,因此您無法執行任何變量,循環和邏輯相關,並堅持使用基本的HTML,而不是django-dev服務器可以使用簡單的http服務器。

+0

太棒了,這可以說明一些光。謝謝 – Yura

相關問題