oldbee0925 2024-01-17 17:37 采纳率: 91.4%
浏览 13

django后台web模板与前端渲染的html加载css静态文件路径出错

我的后台是django,找了一个现成的bootstrap模板,后台模板没做任何修改,没有使用{% load static %}之类的静态文件路径引用,用的是django内置的web服务器,debug模式。
静态目录这样配置:

STATIC_URL = '/assets/'

后台模板的css导入是这样写的:

    <!-- Bootstrap Css -->
    <link href="/assets/css/bootstrap.min.css" id="bootstrap-style" rel="stylesheet" type="text/css" />

前端显示不正常。查看chrome开发者工具的elements,前端渲染的html无端变成了这样:

    <!-- Bootstrap Css -->
    <link href="assets/css/bootstrap.min.css" id="bootstrap-style" rel="stylesheet" type="text/css" />

链接开头的/不见了,导致路径变为相对路径,加载不了css。
奇怪的是同一批加载的css只有某几个出现这个问题,报错:
single_stock_overview/:1 Refused to apply style from 'http://127.0.0.1:8000/single_stock_overview/assets/css/bootstrap.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
请教了gpt一个礼拜,头被绕晕了也没解决问题,求解!

  • 写回答

1条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-01-17 17:39
    关注

    要解决这个问题,你需要确保你的静态文件设置正确,并且HTML模板中的静态链接是正确的。以下是一些可能的解决方案:

    在你的Django设置中,添加以下设置(取决于你的静态文件的实际位置)

    STATICFILES_DIRS = [
        BASE_DIR / "static",
    ]
    
    

    然后,你需要使用Django的{% load static %}和{% static "path/to/your/staticfile" %}在HTML文件中加载静态文件。例如:

    {% load static %}
    ...
    <link href="{% static 'css/bootstrap.min.css' %}" id="bootstrap-style" rel="stylesheet" type="text/css" />
    
    
    

    有时,只需要将HTML模板中的'/'更改为'./'即可。

    如果这些都不能解决你的问题,建议你查看Django的错误日志

    评论

报告相同问题?

问题事件

  • 创建了问题 1月17日