【问题标题】:Django site_media relative url problemDjango site_media 相对 url 问题
【发布时间】:2010-05-27 16:26:10
【问题描述】:

在我的 settings.py 中,我有以下内容:

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_DIR,'templates')
MEDIA_URL = '/templates/'

在 urls.py 我有(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

我的 base.html 有以下指令:

<link media="screen" href="site_media/bat/design/css/bat.css" type="text/css" rel="stylesheet" />

在第一次进入应用程序时(即http://localhost),这个样式表就可以正常加载了。但是,在随后的 http 请求中(在 urls.py 中它是 (r'^assist/bat/', include('assist.bat.urls')),对于另一个模板,此指令会导致以下错误:

样式表 http://localhost/assist/bat/site_media/bat/design/css/bat.css 未加载,因为它的 MIME 类型“text/html”不是“text/css”。

如您所见,这个 css 指令被变形为一个完全不正确的相对 url。如果我从该网址中删除 /assist/bat ,那么它就可以正常工作。那么如何将我的应用设置为不以这种方式修改 url?

谢谢, 伊戈尔

【问题讨论】:

    标签: css django django-urls


    【解决方案1】:

    大胆猜测:href="site_media/bat/design/css/bat.css" 应该是href="/site_media/bat/design/css/bat.css",前面不带斜杠的url 相对于当前url 解析。

    【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2011-04-29
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2011-01-07
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多