django 2.0.3和浏览器没有显示静态文件

时间:2018-03-16 14:08:35

标签: django django-staticfiles

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

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

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

如果我跑

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

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

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

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

<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发现者

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

我还添加了

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

到我的urls.py

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

2 个答案:

答案 0 :(得分:0)

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

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

    STATIC_URL ='/ static /'

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

    {%load static%}

    src =“{%static”my_app / example.jpg“%}”

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

  5. 请参阅完整文档here

答案 1 :(得分:0)

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

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

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

应该有效。

看起来像个错误。