我部署的Django项目无法访问静态文件,在Chrome中进行检查时,我得到403。
我将以下内容添加到我的000-default.conf中,其中我还有WSGIScriptAlias等:
Alias /static/ /home/budget/static/deploy/
<Directory /home/budget/static/deploy>
Required all granted
</Directory/
静态文件存在于budget / static / deploy文件夹中。这不应该提供所需的权限吗?我需要改变什么才能摆脱403?
它在Ubuntu 16.04上运行。
编辑:
settings.py:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
#os.path.join(BASE_DIR, 'budget/static'),
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, "static/deploy/")
答案 0 :(得分:0)
可能会有一些不同的因素导致您的配置无法正常工作。首先,我会确保您确实正在修改正确的Apache配置文件。您可以运行此命令来检查:
/usr/sbin/apachectl -V | grep SERVER_CONFIG_FILE | awk '{split($0,a,"="); print a[2]}' | sed s/\"//g
然后,要通过WSGI将其他API请求委托给django,您还应该为wsgi文件提供正确的权限(这可能不是绝对需要静态服务才能工作):
<Directory /path/to/django/project/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
接下来,设置Apache使用的流程信息以及项目的绑定URL。
WSGIDaemonProcess myproject python-path=/path/to/django/project python-home=/path/to/your/venv
WSGIProcessGroup mydjangoproject
WSGIScriptAlias /binding/url /path/to/django/project/project/wsgi.py
最后,您可能需要设置一些权限以允许www-data读取您的媒体和静态文件,您应该全部设置。不要忘记重启Apache以应用修改。