STATICFILES_DIR和STATIC_URL用于模块化模板

时间:2013-11-12 09:02:21

标签: python html django

我正在学习Django并尝试创建模块化模板,我遇到了这个问题

在我的开发人员工具中,我收到此错误:

GET http://127.0.0.1:8000/static/assets/css/default.css          404 (NOT FOUND) 127.0.0.1/:8
GET http://127.0.0.1:8000/static/assets/images/pythonlogo.jpeg   404 (NOT FOUND) 127.0.0.1/:84

根据我的理解,让STATIC_URL = '/static/'允许使用{%static%},并将/static/附加到静态文件夹的路径中。另外,使用STATICFILES_DIR用于查找项目中的静态文件。

目前我有:

STATIC_URL = '/static/'

STATICFILES_DIR = (
    ('assets', '/Users/BobDole/Development/django-brad/django_test/'),

)

通过阅读文档,我觉得'assets'用作名称空间或变量来表示/Users/BobDole/Development/django-brad/django_test/

在我使用的html页面中

<img src="{% static 'assets/images/pythonlogo.jpeg' %}">  

<link rel="stylesheet" type="text/css" href="{% static 'assets/css/default.css' %}">

我当前的项目目录结构

django_test/
    admin/
    article/          <-- app
        templates/
    django_test/
        templates/
    images/
    static/
        css/

我相信我使用STATIC_URL和STATICFILES_DIR不正确可能有些人提供了一些建议吗?谢谢!

2 个答案:

答案 0 :(得分:1)

是什么让你觉得assets在某种程度上是神奇的?它不是,它只是一个目录的名称。您没有名为that的目录,因此不应使用它。使用{% static 'images/pythonlogo.jpeg' %}

答案 1 :(得分:1)

试试这个:

<img src="{{ STATIC_URL }}assets/images/pythonlogo.jpeg"> 

Django将更改STATIC_URL为/ whatever / whatever / static /,因此img将访问的URL为:/whatever/whatever/static/assets/images/pythonlogo.jpeg

事物是/ whatever / whatever / static /必须是“static”文件夹包含

之前的路径

我在我的项目中使用STATIC_URL( settings.py ):

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

编辑您必须在settings.py

中添加这3行