gpt4 book ai didi

python - Django 在自定义 404 页面上传输带有 MIME 类型文本/html 的样式表

转载 作者:行者123 更新时间:2023-11-28 10:08:06 25 4
gpt4 key购买 nike

我正在为我的网站设计一个自定义 404 页面,该页面是用 Django 构建的,但我遇到了与 404.html 关联的样式表的问题。

我在 settings.py 中设置 DEBUG = False 以查看我的自定义 404 页面,并将“*”添加到 ALLOWED_HOSTS。

然后我用这一行更改了 urls.py:

handler404 = 'site.views.custom_404'

在 views.py 中:

def custom_404(request):
return render_to_response("site/404.html", context_instance=RequestContext(request))

现在,当我在本地获得 404 页面时,我看到我在 404.html 中编写的 html,但是样式表 style.css 不起作用。我在控制台中收到此消息:

Resource interpreted as Stylesheet but transferred with MIME type text/html:
http://127.0.0.1:8000/site/static/style.css

除了这个新的 404 页面外,我网站上的所有其他页面仍然具有与 style.css 关联的正确样式。

我尝试将它添加到 settings.py,但没有任何改变:

if DEBUG:
import mimetypes
mimetypes.add_type("text/css", ".css", True)

最佳答案

您是否在 settings.py 中定义了您的静态文件?

我猜你在安装的应用程序中有“django.contrib.staticfiles”。你可以这样定义它:

import os.path

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)

在您的网址或设置中执行此操作:

custom_404 = "mysite.views.server_error"

并在 View 中:

from django.shortcuts import render

def server_error(request):
# one of the things ‘render’ does is add ‘STATIC_URL’ to
# the context, making it available from within the template.
response = render(request, "404.html")
response.status_code = 404
return response

关于python - Django 在自定义 404 页面上传输带有 MIME 类型文本/html 的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24478802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com