Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1 [RSS Feed]

#1 Авг. 21, 2013 12:08:17

wwnnbb
Зарегистрирован: 2013-05-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

Суть проблемы:
При запуске на локальном компьютере всё работает, на серевере же выдает :

==> python/logs/appserver.log <==
127.4.210.129 - - [2013-08-21 12:58:07] "GET / HTTP/1.1" 200 1315 0.004668
127.4.210.129 - - [2013-08-21 12:58:07] "GET /static/blog/css/bootstrap.css HTTP/1.1" 404 2118 0.005347
127.4.210.129 - - [2013-08-21 12:58:08] "GET /static/blog/css/bootstrap-responsive.css HTTP/1.1" 404 2151 0.004989
127.4.210.129 - - [2013-08-21 12:58:08] "GET /static/blog/js/bootstrap.min.js HTTP/1.1" 404 2124 0.005177
127.4.210.129 - - [2013-08-21 12:58:08] "GET /static/blog/js/jquery.js HTTP/1.1" 404 2103 0.004873
127.4.210.129 - - [2013-08-21 12:58:08] "GET /static/blog/js/bootstrap.min.js HTTP/1.1" 404 2124 0.005036
#settings.py
STATIC_ROOT = ''
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
    os.path.join(PROJECT_DIR, '..', 'static'),
)
подскажите как исправить.
http://unipages-wwnbb.rhcloud.com/
openshift использует apache может есть способ добавить доступ к папке static через .htaccess
подскажите что просписать

Отредактировано wwnnbb (Авг. 21, 2013 14:28:05)

Офлайн

#2 Авг. 23, 2013 18:48:43

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

Проверенный годами вариант:

В settings.py:

ROOT = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(ROOT, 'static')
MEDIA_URL = '/static/'
STATIC_ROOT = os.path.join(ROOT, 'static/pub')
STATIC_URL = '/static/pub/'
STATICFILES_DIRS = ()
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

В urls.py:

from django.conf.urls import *
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
....
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

> STATICFILES_DIRS
Не трогайте эту переменную, пусть будет пустая.

Офлайн

#3 Авг. 26, 2013 06:17:32

wwnnbb
Зарегистрирован: 2013-05-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

Не помогло

Офлайн

#4 Авг. 26, 2013 11:36:55

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

Офлайн

#5 Авг. 27, 2013 14:23:21

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

> Не помогло

На сервере надо сделать manage.py collectstatic и правильно настроить веб-сервер.
Если у вас 404, вы можете в error log сервера посмотреть откуда именно он файлы пытается прочитать, если из неправильного места, разбирайтесь с веб-серером, иначе - с джанго-проектом.

Офлайн

#6 Авг. 27, 2013 18:22:23

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

lorien
Проверенный годами вариант:

Зачем вообще на сервере статику отдавать через django ?

Сразу apache или nginx



Офлайн

#7 Авг. 29, 2013 05:38:50

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

Budulianin, Статика на сервере отдаётся через nginx из STATIC_ROOT, куда она попадает с помощью команды collectstatic. Строка:

) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Выполняется только в DEBUG=True режиме, который на продакшне должен быть отключен.

Офлайн

#8 Авг. 29, 2013 17:51:01

wwnnbb
Зарегистрирован: 2013-05-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

lorien
Budulianin, Статика на сервере отдаётся через nginx из STATIC_ROOT, куда она попадает с помощью команды collectstatic. Строка:
вопрос если на сервере есть файл .htaccess с содержнием :
RewriteEngine On
RewriteRule ^application/static/(.+)$ /static$1 [L]
и он находится в …/wsgi в котором есть
/wsgi/static
может ли джанго блокировать пердачу статики веб сервером?
https://github.com/wwnbb/unipages

Отредактировано wwnnbb (Авг. 29, 2013 18:00:53)

Офлайн

#9 Авг. 29, 2013 21:06:13

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

lorien
куда она попадает с помощью команды collectstatic.
Это знаю, а вот:
lorien
Выполняется только в DEBUG=True режиме
Не знал, посмотрел в код, теперь знаю :)



Отредактировано Budulianin (Авг. 29, 2013 21:06:30)

Офлайн

#10 Авг. 29, 2013 21:53:17

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1

wwnnbb вебсервером статика отдается из wsgi/static
как она туда попадет твоя забота.

EDIT: был неправ, вижу что там у тебя файлы есть, но они не доступны, фиг знает почему

Отредактировано bismigalis (Авг. 29, 2013 22:03:52)

Офлайн

  • Начало
  • » Django
  • » Ошибка 404 при загрузке static, openshift + python2.7 + django 1.5.1[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version