Django中的静态URL和CSS

时间:2013-03-20 08:58:26

标签: django django-settings django-staticfiles django-static

我正在尝试在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 个答案:

答案 0 :(得分: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'), ]