Django site_media相对url问题

发布于 2024-09-03 09:02:16 字数 1111 浏览 7 评论 0原文

在我的 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.*)

我的 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 呢?

谢谢, 伊戈尔

, '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 呢?

谢谢, 伊戈尔

in my settings.py I have the following:

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

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

And my base.html has the following directive:

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

Upon first entry into the application (i.e. http://localhost) this stylesheet gets loaded just fine. However, on a subsequent http request (in urls.py it is (r'^assist/bat/', include('assist.bat.urls')), to another template this directive results in the following error:

The stylesheet http://localhost/assist/bat/site_media/bat/design/css/bat.css was not loaded because its MIME type, "text/html", is not "text/css."

As you can see, this css directive gets morphed into a relative url which is completely incorrect. If I remove /assist/bat from that url, then it works just fine. So how can I set up my app to not morph url's this way?

Thanks,
Igor

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉南桥 2024-09-10 09:02:16

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

Wild guess: href="site_media/bat/design/css/bat.css" should be href="/site_media/bat/design/css/bat.css", urls starting without slash in front of them are resolved relatively to the current url.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文