2015-08-28 4 views
0

Это довольно странно. Он работал нормально, но машина, с которой он работал, сломалась, и мне пришлось снова установить ее без успеха. Webapp показывает с фоном wuite, без изображений, css или js загружен.Приложение Django не служит статическим файлам

Это как структурирована приложение: App folder structure

Эти переменные в settings.py, которые имеют значение (пожалуйста, обратитесь к любой другой, если требуется):

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

STATIC_ROOT = '' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    '/var/www/myapp/static/', 
) 

И в моих tempaltes, Я всегда устанавливал URL-адрес этого содержания:

<img id="logo" src="{{STATIC_URL}}images/logo.png"\> 

Есть идеи, где проблема?

+1

Вы читали, например. https://docs.djangoproject.com/en/1.8/howto/static-files/? – jonrsharpe

+0

Вы проверили журналы своего сервера? – scytale

+0

@ jonrsharpe На самом деле я это сделал. Тем не менее это не помогло (я использую {{STATIC_URL}} в поле src в шаблонах вместо {% static "my_app/myexample.jpg"%}, как в этой главе docs, но я продолжал, если бы потому, что он работал как this) –

ответ

0

Я наконец обнаружил ошибку: Apache работал по умолчанию и обслуживал шаблоны html в порту 80, но без разрешений для статических файлов.

0

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

+0

Я использую Control + F5 (windows), чтобы обновить браузер. Все такой же. Я проверяю URL-адрес изображений, и если я посещаю, например, localhost: 8080/static/images/logo.png, появляется шаблон ошибки 404 Django –

+0

попробуйте распечатать {{STATIC_URL}} в одном из ваших шаблонов и проверить его значение –

+0

Он просто говорит: '/ static /' –

0

Включите в шаблоне {% load staticfiles %}.

+0

Почему так и не так, как я? Это что-то изменилось для новой версии Django? (Как я уже сказал, приложение работало нормально, поэтому я не касался шаблонов) –

+0

Это сработало или нет? –

+0

Это не так. Даже при загрузке изображений, таких как My image

0

Вы комментируете в ответ на сообщение от Allen Fernandes above, указывает, что вы находитесь в режиме DEBUG. Является django.contrib.staticfiles в вашем INSTALLED_APPS?

+0

Да, это –

+0

'из настроек импорта django.conf' находится в ваших settings.py тоже? –

+0

Нет, настройки не импортируются, но мне действительно нужно импортировать настройки в settings.py? Это не включено в файл settings.py по умолчанию. –

1

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

Вот как это должно быть отформатирован:

Вот настройки, которые сделали бы это так:

STATIC_URL = '/static/' 

STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root') 
#this applies to all operating systems 
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static', 'static_dirs'), 
) 

Вы бы положить ваши статические папки и файлы в «static_dirs» , а затем всякий раз, когда вам нужно синхронизировать с «static_root». Вы бы набрали: «python manage.py collectstatic».

В файле шаблона вы затем введите:

{% load static from staticfiles %} 

<img id="logo" src="{% static "images/logo.png" %}"\> 

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

Смежные вопросы