当调试为False时,Django对所有静态文件(如CSS和图像)给出错误500
我尝试过用户已经发布的不同解决方案,但它们对我不起作用 项目的设置.py当调试为False时,Django对所有静态文件(如CSS和图像)给出错误500,django,django-staticfiles,django-settings,django-debug-toolbar,django-errors,Django,Django Staticfiles,Django Settings,Django Debug Toolbar,Django Errors,我尝试过用户已经发布的不同解决方案,但它们对我不起作用 项目的设置.py BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DEBUG = False ALLOWED_HOSTS = ["*"] STATIC_URL = '/static/' STATICFILES_DIRS=[ os.path.join(BASE_DIR,'static') ] STATIC_ROOT=os.path.joi
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = False
ALLOWED_HOSTS = ["*"]
STATIC_URL = '/static/'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,'static')
]
STATIC_ROOT=os.path.join(BASE_DIR,'assets')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
我所有的CSS文件都在静态文件夹中的样式文件夹中。
所有图像都在媒体文件夹中
浏览器控制台日志
Refused to apply style from 'http://127.0.0.1:8000/static/styles/LandingPage_CSS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
icons8-user-48.png:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Doorakart%20icon.png:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
apple.jpg:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
banana.jpg:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
watermelon.jpg:1
.
.
.
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Refused to apply style from 'http://127.0.0.1:8000/static/styles/LandingPage_CSS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
HTML文件示例
{% load static %}
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<title></title>
<link rel="stylesheet" href="{% static 'styles/LandingPage_CSS.css' %}">
</head>
...
# IMAGES ARE LOADED LIKE THIS
<img src="media/{{item.itemImage}}" alt="img" class=" card-img-top">
...
{%load static%}
...
#图像是这样加载的
...
另外,我想禁用DEBUG
,因为我想创建自定义404错误页面。
404页面也将包含静态图像和CSS,有可能吗?请也帮我一下。这是预期的行为。Django不提供生产中的静态文件或媒体文件。您应该配置nginx等来服务文件 如合同中所规定: 只有当
DEBUG
为True
时,此视图才会工作
这是因为这个视图效率极低,而且可能
不安全。这仅用于本地开发,并且应
切勿在生产中使用
通常,您应该配置nginx
,apache
web服务器来服务静态文件。这些web服务器可能更高效,并且有更多专用的安全工具
Django提供了一些工具来帮助您设置静态文件,例如在单个位置收集静态文件。本文档还描述了如何制作一个
如果您真的想让Django在生产环境中提供静态文件,那么还有一个包,但是:
从Python提供静态文件不是非常低效吗?
简单的回答是,如果您关心性能和
效率那么您应该在CDN后面使用WhiteNoise
云锋。如果你这样做的话,因为缓存头
WhiteNoise发送时,绝大多数静态请求都将得到服务
直接通过CDN而不接触您的应用程序,因此
白噪声的效率没有多大区别
也就是说,WhiteNoise非常有效。因为它只需要
提供一组固定的文件它完成查找文件和
在初始化时预先确定正确的标头。请求
然后只需查字典就可以找到
适当的回应。此外,当与gunicorn(和大多数
其他WSGI服务器)将文件向下推的实际业务
网络接口由内核非常高效的sendfile
syscall,而不是Python
这是预期的行为。Django不提供生产中的静态文件或媒体文件。您应该配置nginx等来服务文件 如合同中所规定: 只有当
DEBUG
为True
时,此视图才会工作
这是因为这个视图效率极低,而且可能
不安全。这仅用于本地开发,并且应
切勿在生产中使用
通常,您应该配置nginx
,apache
web服务器来服务静态文件。这些web服务器可能更高效,并且有更多专用的安全工具
Django提供了一些工具来帮助您设置静态文件,例如在单个位置收集静态文件。本文档还描述了如何制作一个
如果您真的想让Django在生产环境中提供静态文件,那么还有一个包,但是:
从Python提供静态文件不是非常低效吗?
简单的回答是,如果您关心性能和
效率那么您应该在CDN后面使用WhiteNoise
云锋。如果你这样做的话,因为缓存头
WhiteNoise发送时,绝大多数静态请求都将得到服务
直接通过CDN而不接触您的应用程序,因此
白噪声的效率没有多大区别
也就是说,WhiteNoise非常有效。因为它只需要
提供一组固定的文件它完成查找文件和
在初始化时预先确定正确的标头。请求
然后只需查字典就可以找到
适当的回应。此外,当与gunicorn(和大多数
其他WSGI服务器)将文件向下推的实际业务
网络接口由内核非常高效的sendfile
syscall,而不是Python
这是预期的行为。Django不在生产中提供静态文件或媒体文件。您应该配置nginx等来服务文件。这是预期的行为。Django不在生产中提供静态文件或媒体文件。您应该配置nginx等来服务文件。