【发布时间】:2013-09-01 04:52:14
【问题描述】:
我正在使用 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 值以显示我尝试过的内容。还是不行……
【问题讨论】: