【问题标题】:Unable to access static files in Django - Development server无法访问 Django 中的静态文件 - 开发服务器
【发布时间】:2020-06-19 11:04:52
【问题描述】:

我正在尝试访问浏览器中的静态文件,但无法访问它们。我在settings.py 中的静态设置如下

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

我的 urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', FrontPage.as_view()),
    # url('', include(router.urls))
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

我的文件夹结构

projectname
       projectname
             settings.py
             urls.py
       app1_name
       static
             bs4
                  css
                     cover.css
             admin
       templates

我的template.html

<link href="/static/bs4/css/cover.css" rel="stylesheet">

上面的链接没有加载静态文件。我在点击以上网址时收到 404。请让我知道我哪里出错了。

【问题讨论】:

  • 使用{% static 'css/bootstrap/css/cover.css' %}
  • @Rakesh 我在这个 url 上得到 404 --> http://localhost:8000/static/bootstrap/css/cover.css
  • @Rakesh 如果我将static files directory 保留在我的django_project 之外并将其添加到STATICFILES_DIRS 中,那么我就可以访问静态文件。为什么会这样?
  • 我能够重现该问题;我会更新我的答案
  • 是的,似乎服务器正在另一个目录中寻找 .css 文件。当你设置:STATIC_DIR = os.path.join(BASE_DIR, 'static'),服务器会在正确的目录中搜索,然后你可以将STATICFILES_DIRS设置为正确的

标签: python django django-staticfiles


【解决方案1】:

您只需要更新您的设置:

STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [STATIC_DIR, ]

【讨论】:

  • 您建议的链接更通用,但从浏览器我应该能够访问文件:http://localhost:8000/static/bootstrap/css/cover.css 我得到 404。令人惊讶的是,我能够访问 admin/ 的 css 文件文件夹[查看我的主管结构],位于同一位置。也许我的settings.py有些问题
  • 能否分享一下您的浏览器显示的错误信息
  • 添加到问题正文中。它说找不到 404 页面。
  • 服务器找到“静态”目录。但是找不到bs4/css/cover.css文件
  • 那么解决办法是什么?
【解决方案2】:

使用:&lt;link href="{% static 'bootstrap/css/cover.css' %}" rel="stylesheet"&gt;

确保在您的 template.html 顶部使用 {% load static %},一切就绪。

【讨论】:

    猜你喜欢
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2012-06-03
    • 2020-11-26
    • 2018-08-31
    • 2012-03-01
    相关资源
    最近更新 更多