【问题标题】:can't load css file with django无法使用 django 加载 css 文件
【发布时间】:2013-07-28 18:35:28
【问题描述】:
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'css/main.css' %}" type="text/css" />

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
)

以上是我的设置和html设置。虽然我可以在我的 HTML 文件中获取 /static/css/main.css,但我无法加载 127.0.0.1/static/css/main.css。我该怎么做才能解决这个问题?

【问题讨论】:

  • 改用{{STATIC_URL}}css/main.css
  • 不,我可以在我的 HTML 文件中获取“static/css/main.css”,但是如果我直接从浏览器加载地址,它根本就不起作用...
  • 你能把你的projectstructure 粘贴过来吗?
  • 您忘记端口了吗? 127.0.0.1:8000/static/css/main.css

标签: python css django web-applications


【解决方案1】:

在您的 STATICFILES_DIR = ( )

将其更改为列表:

STATICFILES_DIR = [
# place STATIC_DIR in here ending in a ,
]

【讨论】:

    【解决方案2】:

    settings.py中添加一行

    STATIC_URL = '/static/'
    
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    运行命令:- python manage.py collectstatic

    生成的静态文件夹

    用于加载 CSS 文件

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

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。请阅读此how-to-answer 以提供高质量的答案。
    【解决方案3】:

    要成功加载静态文件,您应该考虑:

    • STATICFILES_DIRS 应包含静态文件夹列表
    • STATIC_ROOT 不应为空。设置它,即collected_static
    • 如果您在DEBUG=True 中启动您的 django 站点,django 将直接从 STATICFILES_DIRS 使用静态,如果您在 DEBUG=False 中启动 django 站点,您应该使用python manage.py collectstatic

    【讨论】:

      猜你喜欢
      • 2011-11-26
      • 2013-02-28
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 2020-04-16
      相关资源
      最近更新 更多