django 2.0.3 и браузер не отображают статические файлы

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

Я не уверен, что это проблема с джанго, так как я никогда этого не видел. Я надеюсь, что кто-то видел это раньше или знает, что я делаю неправильно.

Мой браузер не найдет мои статические файлы с помощью runserver. Странно то, что URL-адреса в шаблонах верны, и если я вставлю URL-адреса в браузер, файлы будут найдены.

Если я побегу

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

Файлы найдены. Тем не менее, браузер, Firefox, Chrome, Safari (все последние версии) показывают 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 и вложенные папки верны. Кто-нибудь видел это раньше и знает о разрешении? Спасибо.


person chuck    schedule 16.03.2018    source источник


Ответы (2)


Тег static экранирует вопросительный знак (в предыдущих версиях этого не было).

Итак, переместите ? за пределы вызова тега:

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

должно сработать.

Похоже на ошибку.

person Ivan Starostin    schedule 05.05.2018

У меня была такая же проблема, когда я помещал свои статические файлы в папку, которая не соответствует имени моего приложения, выполните шаг ниже.

  1. Убедитесь, что файл django.contrib.staticfiles включен в ваш INSTALLED_APPS.
  2. В файле настроек укажите STATIC_URL, например:

    STATIC_URL = '/статический/'

  3. В своих шаблонах используйте тег статического шаблона для создания URL-адреса для заданного относительного пути с помощью настроенного STATICFILES_STORAGE.

    {% статическая загрузка %}

    src="{% статический "my_app/example.jpg" %}"

  4. Храните ваши статические файлы в папке с именем static в вашем приложении. Например, my_app/static/my_app/example.jpg

полную документацию см. здесь

person Ochui Princewill    schedule 29.03.2018