我正在使用 django 1.5.2,我很难理解媒体目录与静态目录的用途以及如何在我的 django 项目中包含样式表。
这是我的目录结构:
django_books
beer
__init__.py
admin.py
models.py
views.py
random_book
(same as beer above)
django_books (the actual django project; beer and random_book above are my apps)
templates
base.html
beersall.html
__init__.py
settings.py
urls.py
views.py
wsgi.py
static
css
beers.css
media
css
beers.css
static
css
beers.css
manage.py
我的 beersall.html 模板(啤酒输出是正确的,所以只是链接样式表是错误的):
{% extends 'base.html' %}
{% block content %}
<div id="beer_list">
{% for beer in beers %}
{{ beer }},
{% endfor %}
</div>
{% endblock %}
我的 base.html 文件:
<html>
<head>
<link rel="stylesheet" type="text/css" href="/media/css/beers.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/beers.css" />
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/beers.css" />
<link rel="stylesheet" type="text/css" href="/static/css/beers.css" />
<link rel="stylesheet" type="text/css" href="/Users/username/Projects/django_books/media/beers.css" />
<link rel="stylesheet" type="text/css" href="/Users/username/Projects/django_books/static/beers.css" />
<link rel="stylesheet" type="text/css" href="/Users/username/Projects/django_books/django_books/static/beers.css" />
{% block extrahead %}{% endblock %}
</head>
<body>
<div id="page_container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
我的 settings.py 文件:
MEDIA_ROOT = '/Users/username/Projects/django_books/media/'
MEDIA_URL = '/Users/username/Projects/django_books/media/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
我应该注意我使用的是 django 开发服务器,而不是 apache。
我的浏览器(开发人员控制台)中的错误beers.css
是 404。
url 是localhost:8000/beers/
,我的 urls.py 文件正确指向这个,views.py 正确地为 beersall.html 模板提供服务。如何正确链接我的媒体?
编辑
当我将css链接href值更改为/Users/username/Projects/django_books/media/
它仍然不起作用。
编辑 2
我已经更新了href
值以显示我尝试过的东西。还是行不通...