2013-03-20 83 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