2016-04-10 2 views
0

Django не обслуживает мои статические файлыДжанго 404 статические файлы

PROJECT_ROOT = path.dirname(path.abspath(path.dirname(__file__))) 
STATIC_ROOT = path.join(PROJECT_ROOT, 'static').replace('\\', '/') 
STATIC_URL = '/static/' 
STATICFILES_DIRS =() 

Ошибка

The requested URL /static/css/bootstrap.min.css was not found on this server. 
+1

Вы вызвали команду collectstatic на сервере? –

+0

Вы развернули или все еще находитесь на сервере разработки? –

+0

работает на localhost, но я не могу запустить команду collectstatic на сервере Azure –

ответ

0

Django имеет очень хорошие принципы, но IRL это не очевидно для начинающих, чтобы сделать его работу (и я думаю, поэтому он не используется так много, хотя Django на сегодняшний день является одной из лучших фреймворков). Вот идея и it's better explained here:

Веб-сервер, который выполняет некоторые вычисления, никогда не должен обслуживать статические файлы на рабочем сервере. И они справа.

Django служит для статических файлов и делает это автоматически, когда DEBUG установлено на True.

Так у вас есть 2 варианта:

  • либо установить DEBUG к True на производственном сервере, но это опасно и не рекомендуется, сделать это временно, если вам действительно нужно
  • , или прочитать всю документацию и узнайте, как установить и настроить так называемый обратный прокси-сервер, который либо будет обслуживать статические файлы, либо передаст запрос самому джанго. Классическая пара любви - nginx в качестве обратного прокси и gunicorn. Это как один день, чтобы узнать это, но это все хорошие принципы, которые вы должны применять.
Смежные вопросы