django - nginx迁移到阿里云后静态文件403错误无法访问的原因有哪些?
问题描述
p.s: django项目在本地能成功运行,但是迁移到阿里云后就不行了。运行环境:ubuntu14.04+uwsgi+nginx+django1.9。这是访问django的admin页面的截图,所有的css文件都无法加载,详细报错信息贴在了下面。项目在阿里云的位置是/root/mysite。server { listen 8080; server_name www.domainname.com; location /static/ {alias /root/mysite/blog/static/; } location / {uwsgi_pass 127.0.0.1:8001;include /etc/nginx/uwsgi_params; }}问题补充:静态文件都已经收集到了我alias指定的目录
$ python manage.py collectstatic0 static files copied to ’/root/mysite/blog/static’, 69 unmodified.# 文件权限没有问题$ ll /root/mysite/blog/statictotal 16drwxrwxr-x 4 root root 4096 Oct 5 09:13 ./drwxrwxr-x 6 root root 4096 Oct 5 15:28 ../drwxrwxr-x 6 root root 4096 Oct 5 09:13 admin/drwxrwxr-x 5 root root 4096 Oct 5 09:13 blog/
# mysite/settings.py中已经指定了下面两项,**collectstatic**也收集成功,所以我觉得配置可能不存在问题# 而且项目在本地能够运行,就是迁移到阿里云后无法运行了,所以是不是可能是阿里云的权限问题。STATIC_URL='/static/'STATIC_ROOT = os.path.join(BASE_DIR, ’blog/static’)这是我在本地实验时localhost:8080/admin的正确页面
问题解答
回答1:alias /root/mysite/blog/static/;
/root 目录默认是只有 root 能访问的。其下的文件再怎么开放,nginx 进不去也没用。
网站文件一般放在 /srv/http 下。
另外,如果你不想让你的服务器被别人用来当肉鸡、攻击别人、发送垃圾邮件、作为免费代理的话,就不要用 root 权限跑 Web 程序。
回答2:我不太懂,我只是用阿里云ECS服务器搭建一下博客
相关文章:
1. 主从备份 - 跪求mysql 高可用主从方案2. python - django 里自定义的 login 方法,如何使用 login_required()3. python如何不改动文件的情况下修改文件的 修改日期4. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?5. angular.js - 不适用其他构建工具,怎么搭建angular1项目6. android-studio - Android 动态壁纸LayoutParams问题7. mysql优化 - mysql count(id)查询速度如何优化?8. javascript - git clone 下来的项目 想在本地运行 npm run install 报错9. sql语句如何按or排序取出记录10. node.js - 使用 superagent 抓取 UTF-8网站乱码
