Django: как развернуть статические файлы на сервере apache в рабочей среде

#django #apache #production

#django #apache #производство

Вопрос:

Статические файлы не загружаются в рабочей среде моего проекта Django. Я использую mod-wsgi для обслуживания статических файлов.

Статические файлы отлично работали при разработке (при DEBUG= True), но теперь я получаю 404 ошибки при попытке вызова статических файлов.

Моя файловая структура такова: https://imgur.com/a/FuFZSSh

/etc/apache2/sites-доступно/mysite.conf

 <VirtualHost *:80>
    ServerName <ip address>
    ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
    CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined

    WSGIDaemonProcess mysite processes=2 threads=25 python-path=/var/www/mysite
    WSGIProcessGroup mysite
    WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py

    Alias /robots.txt /var/www/mysite/static/robots.txt
    Alias /favicon.ico /var/www/mysite/static/favicon.ico
    Alias /static/ /var/www/mysite/static/
    Alias /media/ /var/www/mysite/media/

    <Directory /var/www/mysite/mysite>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    <Directory /var/www/mysite/static>
        Require all granted
    </Directory>

    <Directory /var/www/mysite/media>
        Require all granted
    </Directory>
</VirtualHost>
 

settings.py

 STATIC_ROOT = '/var/www/mysite/static_root/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'

MEDIA_ROOT = '/var/www/mysite/media/'
MEDIA_URL = '/media/'
 

Любая помощь будет с благодарностью принята 🙂

Ответ №1:

Ответ №2:

После запуска Apache должен просмотреть ваш каталог collectstatic STATIC_ROOT .

 <Directory /var/www/mysite/static_root>
    Require all granted
</Directory>
 

Комментарии:

1. Alias /static/ /var/www/mysite/static/ также может потребоваться изменить на Alias /static/ /var/www/mysite/static_root/

2. @Omar я тоже внес это изменение, и оно все еще выдает ошибки: (

3. спасибо, что поделились этим, к сожалению, это не решило проблемы. я все еще получаю следующую ошибку : … «GET /static/base/css/vendor/bootstrap/bootstrap.min.css HTTP/1.1» 404 77… я попытался исправить это дальше, убрав завершающий символ «/» в обоих Alias /static/ /var/www/mysite/static/ Alias /media/ /var/www/ mysite/media/ @Daniel Roseman