Настройка 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 не обслуживает статические файлы?