2013-03-20 39 views
-2

我想在Django中設置一個靜態url,並讓我的模板使用它來鏈接到css。這是我的代碼。爲什麼它不起作用?另外,設置這個最好的做法是什麼?謝謝。在Django中的靜態URL和CSS

# settings 

import os 

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static') 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (

) 

INSTALLED_APPS = (
    ... 
    'django.contrib.staticfiles', 
    ) 


# urls 

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

# ... the rest of my URLconfs here ... 

urlpatterns += staticfiles_urlpatterns() 


# html template 

<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css"> 

# file structure 
-project 
--project 
---settings 
---static 
----css 
-----style.css 

回答

1

您的STATICFILES_DIRS需要包含您的靜態目錄進行開發的路徑列表。 STATIC_ROOT設置用於將靜態文件收集到生產中的單個目錄中,以便由HTTP服務器(例如Nginx或Apache)提供服務。

看到你已經定義了一個PROJECT_ROOT你可以這樣做:

# Assuming your settings.py is at the same level as your static directory 
STATICFILES_DIRS = [ 
    os.path.join(PROJECT_ROOT, 'static'), ] 
+0

仍然沒有爲我工作。還有什麼提示? – user1330225 2013-03-20 10:05:36

+0

嘗試[@catherine](http://stackoverflow.com/a/15521262/1199394)的答案。 – krak3n 2013-03-20 11:08:42

+0

確定其他東西一定是錯的,因爲即使我將它與樣式表的確切文件路徑鏈接時,它也沒有使用CSS,但是我在django之外的另一個文件上測試了它,並且它工作正常。 – user1330225 2013-03-20 12:34:15