在开发环境中提供django静态文件

时间:2011-12-23 16:52:41

标签: django static-files django-staticfiles

我想使用静态文件来使用runserver命令加载我的css。问题是我尝试了我在stackoverflow和django文档中找到的所有解决方案,但它根本不起作用...我不知道我能做什么... 如果我设置

STATIC_URL = '/static/'
STATIC_ROOT = 'C:\Users\Max\Works\www\mysite\mysite\static'
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

我觉得这就够了......我错过了什么吗? 你能告诉我在开发环境中拥有静态文件的最佳设置是什么? 谢谢你的建议...

EDIT(1) 我已经在我的模板{{STATIC_URL}} css / dark-grey.css“中添加了cs,并且css位于C:\ Users \ Max \ Works \ www \ mysite \ mysite \ static \ css \ dark-grey.css中,我真的不能弄错...

4 个答案:

答案 0 :(得分:1)

在路径中使用/ slashes和NOT \ slashes,即使对于Windows路径也是如此。

答案 1 :(得分:0)

您需要添加网址格式:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ... the rest of your URLconf here ...

urlpatterns += staticfiles_urlpatterns()

请参阅文档here

答案 2 :(得分:0)

在你的settings.py

DEBUG =真

根据文档:

  

此视图由runserver自动启用(具有DEBUG设置)   设置为True)。

使用URL模式是强制它的一种方式,只要DEBUG = True,我个人甚至不必在我的项目中这样做。在开发时,你总是会有DEBUG,当你切换到生产时,你甚至都没有使用开发服务器,所以你会将你的生产服务器指向静态位置。

这是我的settings.py中的静态设置片段。我不需要手动添加该静态视图URL

import os

DEBUG = True

PROJECT_ROOT = os.path.dirname( __file__ )
PROJECT_NAME = os.path.basename(PROJECT_ROOT)

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static/')
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_ROOT, 'web/'),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)


TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.static',
    ...
    ...
)

答案 3 :(得分:-3)

您还需要运行以下命令以将静态文件移动到正确的位置(并让Django知道它们在那里):

python manage.py collectstatic

Django 1.3中有关静态文件的完整文档如下: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/