Py学习  »  Django

Django Statics不可访问(数字海洋)[副本]

Sumerechny • 4 年前 • 334 次点击  

我在一个数字海洋水滴上建立了一个django网站,但是静态文件似乎是不可访问的。

四处寻找解决方案,我认为问题出在服务器设置(nginx)上,但由于这对我来说是更新的,所以我想在搞糟它之前验证一下。

css放在 django_project/static/css ,无法使用浏览器访问此文件夹:

伊帕雷斯 /static/css/style.css在css上显示“404 not found”错误

编辑

我刚找到nginx错误日志,它声明在中查找静态文件 django_project/django_project/static/css 这是不存在的。我想这应该在settings.py中更正。我说的对吗?

settings.py静态:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40251
 
334 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Jitendra Sanghani
Reply   •   1 楼
Jitendra Sanghani    5 年前

网络服务器将查看 /静态/ 位置,您需要提供虚拟路径/静态/到物理路径的映射,并授予每个人访问权限。

需要以下设置才能放入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,请删除媒体设置。

Michael King
Reply   •   2 楼
Michael King    5 年前

这是您第一次尝试将网站部署到生产环境中吗?

如果您使用“python manage.py runserver”在本地运行站点,那么只要文件路径匹配,您的设置看起来就可以,但是如果您在生产环境中尝试为静态文件提供服务,则需要以不同的方式为它们提供服务,我个人使用whitenoise从web服务器本身执行此操作。

文档: https://djangobook.com/serving-files-production/