Я думаю, что это распространенная проблема, но ни одно из решений, которые я пробовал, работает.
Код от Apache Conf:
<VirtualHost *:80>
ServerName xxxx
ServerAdmin xxxx
DocumentRoot /home/matousc/apps/iacah
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/matousc/apps/iacah/www/static
<Directory /home/matousc/apps/iacah/www/static>
Require all granted
Allow from all
</Directory>
<Directory /home/matousc/apps/iacah/app/mainapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess iacah python-path=/home/matousc/apps/iacah/app python-home=/home/matousc/apps/appenv
WSGIProcessGroup iacah
WSGIScriptAlias / /home/matousc/apps/iacah/app/mainapp/wsgi.py
</VirtualHost>
Я могу получить доступ к странице через Интернет, поэтому Я уверен, что редактирую правильный файл apache conf .Однако статические файлы не загружаются.
Статические файлы не загружаются с ошибкой 403 .Я заметил, что если я изменю строку:
Alias /static/ /home/matousc/apps/iacah/www/static
на (убрал косую черту в конце static
:
Alias /static /home/matousc/apps/iacah/www/static
, тогда я получу 404 ошибку . В уроках я видел оба варианта, поэтому меня немного смущает, почему он может играть роль.
Владелец папки /www/
: www-data
(я использую Ubuntu 18):
drwxrwx--x 3 www-data www-data 4096 Sep 21 10:14 .
drwxr-xr-x 8 matousc matousc 4096 Sep 21 10:14 ..
drwxrwxrwx 12 www-data www-data 4096 Sep 21 10:14 static
Я использую эту машину как мультихост, и у меня есть еще один статический веб-сайт, который работает (файлы обслуживаются правильно)
<VirtualHost *:80>
ServerName xxxxx
ServerAdmin xxxx
DocumentRoot /home/matousc/apps/placeholder
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /home/matousc/apps/placeholder>
Require all granted
Options +Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
В DjangoЯ использую (надеюсь, рекомендуется) настройки:
STATIC_URL = "/static/"
if production_machine:
level_up = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(level_up, "www", "static")
STATICFILES_DIRS = (
STATIC_ROOT,
)
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
(production_machine
должно быть True).
Любые идеи, что еще я могу попробовать?