【问题标题】:django 2.0.3 and Browser not showing static filesdjango 2.0.3 和浏览器不显示静态文件
【发布时间】:2018-08-25 15:17:55
【问题描述】:

django 2.0.3 和 Python 3.6.x FireFox、Chrome、Safari

我不确定这是一个 django 问题,因为这是我从未见过的事情。我希望有人以前见过或知道我做错了什么。

我的浏览器无法使用 runserver 找到我的静态文件。奇怪的是模板中的网址是正确的,如果我将网址粘贴到浏览器中,就会找到文件。

如果我跑了

./manage.py findstatic --verbosity 2 css/style.css

找到文件。然而,浏览器、Firefox、Chrome、Safari(所有最新版本)都在我访问静态资源的页面的 WebConsole 中显示 404。

<link rel="stylesheet" href="{% static 'trans/css/style.css?1510690221335' %}">

不起作用。如果我更改为实际 URL

<link rel="stylesheet" href="http://localhost:8080/trans/css/style.css?1510690221335">

一切正常。

我的相关(据我所知)配置是

STATIC_ROOT = str(ROOT_DIR('staticfiles'))

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    str(APPS_DIR.path('static')),
]

/#staticfiles-finders

STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]

我也加了

static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

到我的 urls.py

我的static 文件夹和子文件夹的所有权限都是正确的。有没有人见过这个并且知道解决方案?谢谢。

【问题讨论】:

    标签: django django-staticfiles


    【解决方案1】:

    static 标签转义问号(以前的版本没有)。

    所以将?移到标签调用之外:

    <link rel="stylesheet" href="{% static 'trans/css/style.css' %}?1510690221335">
    

    应该可以。

    看起来像一个错误。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,当我将静态文件放在与我的应用名称不对应的文件夹中时,请按照以下步骤操作

      1. 确保 django.contrib.staticfiles 包含在您的 INSTALLED_APPS 中。
      2. 在您的设置文件中,定义 STATIC_URL,例如:

        STATIC_URL = '/static/'

      3. 在您的模板中,使用静态模板标签通过配置的 STATICFILES_STORAGE 为给定的相对路径构建 URL。

        {% 加载静态 %}

        src="{% static "my_app/example.jpg" %}"

      4. 将静态文件存储在应用程序中名为 static 的文件夹中。例如 my_app/static/my_app/example.jpg

      查看完整文档here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-21
        • 2015-02-14
        • 2017-05-03
        • 2020-01-04
        • 2021-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多