【问题标题】:Django Static Files - No error but still doesnt load or change cssDjango 静态文件 - 没有错误,但仍然没有加载或更改 css
【发布时间】:2020-07-15 22:12:37
【问题描述】:

这似乎是一个非常普遍的问题,我已阅读文档并尝试了所有解决方案和多个 youtube 视频,但找不到解决方案。

当我运行开发服务器时,我的静态文件不会加载,但我的终端也不会引发任何错误。

文件布局: File Structure

SETTINGS.PY

STATIC_URL = '/staticfiles/'
MEDIA_URL = '/images/'

STATICFILES = [
    os.path.join(BASE_DIR, 'staticfiles'),
]

终端输出:

July 15, 2020 - 21:02:47
Django version 3.0.8, using settings 'mywebsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[15/Jul/2020 21:02:51] "GET / HTTP/1.1" 200 148
[15/Jul/2020 21:02:51] "GET /staticfiles/css/main.css HTTP/1.1" 404 1672
[15/Jul/2020 21:02:51] "GET /staticfiles/images/headshot.JPG HTTP/1.1" 404 1693

【问题讨论】:

  • 在你的设置中添加print(STATICFILES)并检查路径是否正确
  • 变量名也应该是STATICFILES_DIRSurl

标签: python django static-linking


【解决方案1】:

改成

STATICFILES = [
os.path.join(BASE_DIR, 'staticfiles'),
]

到这里

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'staticfiles'),
]

并确保您为静态文件创建的文件夹的名称是“staticfiles”

【讨论】:

    【解决方案2】:

    settings.py 中用于提供静态文件的正确配置应该是:

    # For serving static files
    STATIC_URL = '/staticfiles/'
    
    # All the staticfiles will be collected here
    STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
    
    # This should be "STATICFILES_DIRS" and not "STATICFILES"
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'staticfiles'),
    ]
    
    

    STATIC_ROOT 中定义的文件夹必须不同于 staticfiles 文件夹。
    在上面给出的 sn-p 中,我将这个文件夹命名为“assets”。

    当您运行python manage.py collectstatic 时,跨不同应用程序定义的所有静态文件都将在此处“收集”以进行部署。


    用于提供媒体文件:

    # For media files
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
    

    您还需要根据文档定义MEDIA_ROOT

    您可以阅读有关管理静态文件的更多信息here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2018-10-07
      • 2019-08-31
      • 2021-09-04
      • 2019-05-04
      • 2021-07-22
      • 2019-06-27
      相关资源
      最近更新 更多