Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当调试为False时,Django对所有静态文件(如CSS和图像)给出错误500_Django_Django Staticfiles_Django Settings_Django Debug Toolbar_Django Errors - Fatal编程技术网

当调试为False时,Django对所有静态文件(如CSS和图像)给出错误500

当调试为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

我尝试过用户已经发布的不同解决方案,但它们对我不起作用

项目的设置.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.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等来服务文件。