【问题标题】:Why can't I serve my static files to Django?为什么我不能将我的静态文件提供给 Django?
【发布时间】:2021-12-31 12:39:54
【问题描述】:

在有人将此标记为重复之前,我已经看到了所有其他类似主题的问题,并尝试了所有解决方案,但均无效。

我的 Django 应用程序很小,我很高兴从同一台服务器提供静态文件

settings.py 我有

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

我已将我的应用程序上传到服务器并运行

python.manage.py collectstatic

我所有的静态文件都在 staticfiles

下的相应目录中
project-root
├── staticfiles
│   ├── css
│   │   ├── base.css
│   ├── js
│   │   ├── common.js

在我的 html 我有

{% load static %}
<link href="{% static 'css/base.css' %}" rel="stylesheet">

在加载页面时出现错误

拒绝应用来自“”的样式,因为它的 MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查。

我认为这是因为它找不到 css 文件

我哪里出错了?我需要提供更多信息吗?

【问题讨论】:

    标签: django django-staticfiles


    【解决方案1】:

    我的问题已经通过安装whitenoise 包解决了。 (关于这个问题的类似问题的回复我没有看到这个推荐)

    pip install whitenoise
    

    并将其添加到 settings.py

    的中间件部分
    MIDDLEWARE = [
        ...
        'whitenoise.middleware.WhiteNoiseMiddleware', 
        ...
    ]
    

    我的所有静态文件现在都已加载,并且该站点无需进一步配置即可完美运行

    (我假设问题可能是由站点主机的服务器设置中的一个怪癖引起的。)

    【讨论】:

      【解决方案2】:

      project_name - app_name - static - app_name - css/js 文件

      <link rel="stylesheet" href="{% static 'app_name/style.css' %}">
      

      【讨论】:

        猜你喜欢
        • 2020-09-04
        • 1970-01-01
        • 1970-01-01
        • 2019-06-14
        • 1970-01-01
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        相关资源
        最近更新 更多