django MEDIA_URL改变了儿童模板?

时间:2011-08-15 14:33:53

标签: django url path media

我的项目中有这些网址.urls:

urlpatterns = patterns('',
    (r'^categories/', include('category.urls')),
)

在Categroy应用中,我的category.urls:

urlpatterns = patterns('category.views',
    (r'^$', 'category_tree'),
    (r'^add/?$', 'category_add'),)

我在settings.py中有这个:

MEDIA_URL = "http://localhost:80/media/"
ROOT_PATH = os.path.normpath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
    os.path.join(ROOT_PATH, 'templates'),
)

在项目模板目录中,有一个基本模板“base.html”,其中包含以下行:

<link href="{{MEDIA_URL}}css/base.css" rel="stylesheet" />

在我的“类别”应用中,我还有模板“category_tree.html”和“category_add.html”。 这些都来自base.html:

{% extends "base.html" %}

使用这两个子模板/视图中的内容正确呈现base.html中的块。 但是找不到category_add.html的css和图像。

在Categroy_tree.html上有一个链接,如下所示:

<div><a href="add">Add category</a></div>

如果单击,则指向正确的视图。但随后css MEDIA_URL请求从

更改
http://localhost/media/css/base.css
// (Correct)

http://localhost:8000/categories/css/base.css
// (Incorrect)

为什么会发生这种情况,我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

添加类别视图未使用RequestContext呈现页面,因此MEDIA_URL不会发送到模板上下文。