Почему изменение параметра STATIC_URL влияет на работу моего приложения Django?

В settings.py, если я укажу STATIC_URL = 'http://68.164.125.221/', клиенты смогут посещать мою веб-страницу. Однако никакие CSS и другие статические файлы не загружаются.

С другой стороны, если я укажу STATIC_URL = '/', то посещение домашней страницы моего приложения выдает эту ошибку.

Page not found (404)
Request Method: GET
Request URL:    http://68.164.125.221/
Directory indexes are not allowed here.
You're seeing this error because you have DEBUG = True in your Django settings file.

Интересно, что мои статические файлы теперь загружаются (например, загружается http://68.164.125.221/main.css), несмотря на то, что на домашней странице моего приложения отображается эта ошибка.

Почему изменение моей настройки «STATIC_URL» переключает загрузку моей домашней страницы или загрузку моих статических файлов? Я использую приложение staticfiles.


person dangerChihuahua007    schedule 18.05.2012    source источник


Ответы (1)


Вы, вероятно, хотите STATIC_URL = '/static/'[1]; когда вы устанавливаете его на /, Django пытается обслуживать /blah/ как статический файл, а не проталкивать его в ваше приложение Django.

Фактическая ошибка, которую вы получаете, Directory indexes are not allowed here., относится к тому факту, что папки со статическими файлами не указаны в списке - вы должны получить доступ к определенному файлу, чтобы его можно было обслуживать.

[1] Или /media/, или /files/, или что-то еще... только не '/'.

person rossp    schedule 18.05.2012
comment
Спасибо, указание STATIC_URL = '/static/' работает. Что вы имеете в виду, говоря, что Django пытается обслуживать «/blah/» как статический файл? Вы имеете в виду, что все мои сопоставления URL-адресов рассматриваются как статические файлы? - person dangerChihuahua007; 18.05.2012
comment
Да, установив STATIC_URL='/', Django игнорирует сопоставление вашего URL и пытается обслуживать все как статические файлы. (Предполагая, что вы используете встроенный сервер разработки) - person rossp; 21.05.2012