我已经在Digital Ocean的Droplet上构建了一个Django网站,但是静态文件似乎无法访问。
四处寻找解决方案,我认为问题出在服务器设置(Nginx)上,但是由于这对我来说是新事物,所以我想在弄乱之前先对其进行验证。
CSS放在django_project/static/css
中,无法使用浏览器访问此文件夹:
IPadress /static/css/style.css在CSS上显示“ 404未找到”错误
我刚刚发现Nginx错误日志,其中指出在django_project/django_project/static/css
中寻找不存在的静态文件。我认为这应该在settings.py中更正。我说得对吗?
Settings.py静态:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
答案 0 :(得分:0)
这是您首次尝试将网站部署到生产环境中时的情况吗?
如果您使用“ python manage.py runserver”在本地运行站点,则只要文件路径匹配,设置就可以正常运行,但是,如果要在生产环境中提供静态文件,则需要以其他方式提供服务,我个人通过网络服务器本身使用whitenoise。
答案 1 :(得分:0)
网络服务器将查看 / static / 的位置,您需要提供虚拟路径/ static /到物理路径的映射,并授予从每个人访问的权限。
需要以下设置才能放入Web服务器配置文件。将“ / opt / tutor / static /”替换为os.path.join(BASE_DIR,'static')的值。
Alias /static /opt/tutor/static/
Alias /media /opt/tutor/media/
<Directory /opt/tutor/static/>
Require all granted
</Directory>
<Directory /opt/tutor/media/>
Require all granted
</Directory>
将内容放在块内。如果您不需要IPAddress / media / url,请删除媒体设置。