Обслуживание статических файлов на веб-сервере в Django - PullRequest
0 голосов
/ 09 мая 2011

Мне сложно настроить сайт на внешнем сервере (AWS). Кажется, все работает, за исключением статических файлов (CSS и изображений).

Мой проект настроен так -

/var/www/
     djangoapps
         myproject
             settings.py, apps, etc.    
     djangotemplates
         myproject
             HTML files
/var/www/html
     media
         static    
             Images & CSS files

В файле httpd conf у меня есть -

<Location /mysite>
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
        SetEnv PYTHON_EGG_CACHE "/var/cache/www/pythoneggs"
        PythonDebug Off
        PythonPath "['/var/www/djangoapps'] + sys.path"
</Location>

<Location "/media/">
       SetHandler None
</Location>

А в settings.py -

STATIC_URL = '/myproject/static/'
STATICFILES_DIRS = ('/var/www/html/media/static/',)

Когда я загружаю страницу, шаблоны работают, и URL к файлам изображений «правильный» (например, background: url("/myproject/static/email.jpg"). Однако изображения не загружаются. Не могли бы вы сказать, что мне нужно изменить чтобы изображения и CSS загружались правильно? Спасибо

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Вы видели официальные документы по обслуживанию статических носителей с mod_python ? Я подозреваю, что вам нужен подобный SetHandler для ваших статических файлов, который вы делаете для своих медиа-файлов.

Кроме того, mod_python устарел.

1 голос
/ 10 мая 2011

Вам нужно добавить псевдоним для ваших статических файлов, которые будут обслуживаться.Примерно так:

Alias /myproject/static/ /var/www/djangoapps/myproject/media/static

Таким образом, Apache будет обслуживать статические файлы вместо того, чтобы просить django его обработать.

...