Django 1.6中的静态文件

时间:2013-11-10 15:23:05

标签: django django-staticfiles

我可能在这里犯了很多错误,因为我仍然无法让静态文件在我的开发环境中正常工作,尽管我非常关注本教程。我有一种感觉,因为它在Django 1.6中的工作方式略有不同,我只能找到以前版本的答案。

这是我的目录结构:

mysite
├───app1
├───mysite
│   └───templates
├───resources
├───static
│   ├───css
│   ├───fonts
│   └───js
└───app2

我安装的应用程序,以证明我有静态文件:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app1',
    'app2',
)

我的模板和静态文件设置:

 # Templates
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "mysite/templates"),
)

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

我甚至按照建议urls.py执行了此操作:

urlpatterns = patterns('',
    ...
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

最后,我的要求:

{% load staticfiles %}
<link href="{% static "css/core.css" %}" rel="stylesheet">

如果我直接导​​航到http://127.0.0.1/static/css/core.css,我会'css\core.css' could not be found

请告诉我我做错了什么= [

1 个答案:

答案 0 :(得分:7)

由于静态目录没有在其中一个应用程序中“活动”(在您的情况下为app1app2),因此django无法找到静态目录。因此,使用当前结构,您需要将静态目录添加到STATICFILES_DIRS

来自文档:

  

“您的项目可能还会包含与特定应用程序无关的静态资源。除了在应用程序中使用静态/目录外,您还可以在Django的设置文件中定义目录列表(STATICFILES_DIRS)还会查找静态文件。“

这样的事情:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

请参阅: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS

希望这有帮助。