Настройка Django Apache - запрещенная ошибка 403

Поскольку это не сработало с первого раза, я создал свежий новый venv для моего проекта django.

моя структура папок выглядит следующим образом: btw я использовал руководство по установке Django/Apache от digitalOcean (https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04)

/home/pi/myproject/myprojectenv (здесь находится мой env) /home/pi/myproject/myprojectenv/myproject/myproject (здесь находится settings.py)

Я добавил это в файл settings.py (я использую pi, я обслуживаю только локально)

ALLOWED_HOSTS = ['localhost', '127.0.0.1']

и внизу

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

мой /etc/apache2/sites-available/000-default.conf выглядит следующим образом:

<VirtualHost *:80>


        #for django
        Alias /static /home/pi/myproject/myprojectenv/myproject
        <Directory /home/pi/myproject/myprojectenv/myproject/static>
                Require all granted
        </Directory>
        <Directory /home/pi/myproject/myprojectenv/myproject>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIDaemonProcess myproject python-home=/home/pi/myproject/myprojectenv python-path=/home/pi/myproject
        WSGIProcessGroup myproject
        WSGIScriptAlias / /home/pi/myproject/myprojectenv/myproject/myproject/wsgi.py



        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

       

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        
</VirtualHost>

когда я перехожу на /static в браузере, я получаю ошибку http 403 forbidden Error. Что я делаю неправильно?

Ваш псевдоним неправильный

Alias /static/ /home/pi/myproject/myprojectenv/myproject/static/

Во-первых, я бы удалил (если вы этого еще не сделали) DocumentRoot из вашей конфигурации, поскольку вы, похоже, не используете эту функцию. Смотрите здесь.

Где находятся ваши статические файлы? Если они находятся в BASE_DIR/static/, то ваш псевдоним неверен, как указал Мохамед. И не забывайте включать последний прямой слэш, поэтому используйте /static/ вместо /static.

Кроме того, если у вас есть статический файл, скажем BASE_DIR/static/css/styles.css, вы получите к нему доступ через http://localhost/static/css/styles.css, поэтому убедитесь, что вы используете соответствующий URL.

И последнее, но не менее важное: работает ли ваш сайт правильно, кроме того, что apache не обслуживает статические файлы?

Вернуться на верх