Django没有加载CSS?

 huangyong黄勇_513 发布于 2023-02-03 12:46

这是我的urls.py

import os.path
site_media = os.path.join(
    os.path.dirname(__file__), 'site_media'
)

urlpatterns = patterns('',
    url(r'^site_media/(?P.*)$', 'django.views.static.serve',
    { 'document_root': site_media }),
)

我的site_media文件夹和style.css文件在

myProjectFolder/myApp/static/site_media/css/style.css

在我的base.html模板中(我所有其他模板都从该base.html模板扩展而来),这就是我所拥有的:


{% block title %}{% endblock %}




    {% block header %}{% endblock %}

    {% block content %}
        
    {% endblock %}

在我的style.css中,我只有这样:

#header {
    display: inline;
    background-color: black;
    color: black;
    border: 1px solid green;
}

并且CSS没有被应用到

#header

div。知道为什么吗?

1 个回答
  • 问题来自2个方面。

      传递了错误的document_root变量

      不使用html中的模板标签

    1.不建议在urls.py文件中定义site_media变量,因为它不符合DRY原理。应将其作为变量保存在settings.py文件中,以便在需要时可以导入其他模块。在您的settings.py文件中,添加以下行:

    import os.path
    SITE_MEDIA_ROOT = os.path.join(
        os.path.dirname(__file__), 'myApp/', 'static/', 'site_media' #this should be the correct path instead
    )
    

    替换为urls.py文件:

    from myApp import settings
    
    urlpatterns = patterns('',
    url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
    { 'document_root': settings.SITE_MEDIA_ROOT }),
    )
    

    2.您应该使用django模板标签来获取css文件。在基本模板中,将以下行添加到head标签上方:

    {% load static %}
    

    然后替换:

    <link rel='stylesheet' type='text/css' href='/site_media/css/style.css' />
    

    与:

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

    之后它应该工作。

    2023-02-03 12:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有