为什么不将新安装的Django应用程序与服务NGINX静态资产?(Why won't new

2019-11-03 06:50发布

我有一个Mac上运行OS X 10.9.3。 我试图建立由gunicorn服务,由NGINX提供静态资产PostgreSQL数据库支持的Django应用程序。 我是一个老的手在Django中使用MySQL与发展论坛服务器(运行manage.py runserver )。 但我刚开始使用的virtualenv,gunicorn和NGINX设置它。 所以我按照指示在这里

我的Django项目被成功服务于http://localhost:3026 。 由于数据库连接的考验,我想看看Django管理界面。 我参观http://localhost:3026/admin/ 。 我已经包括下面的屏幕截图。

为什么这个管理页面看起来这么难看? 它缺乏neccessary图形界面和CSS,它应该有哪些? 它看起来像NGINX无法正常服务了那些静态资产。 如何排查和解决这个问题?

我甚至做了python manage.py collectstatic 。 那去了,成功复制所有的静态文件到他们应该(我认为?)住/opt/myenv/static 。 你可以看到该命令的输出在这里 。 我然后重新启动gunicorn和nginx的。 我认为这会解决它。 但遗憾的是它没有。 这个问题仍然存在。 在我的Django的settings.py文件,我已经配置了静态变量如下:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'djangobower.finders.BowerFinder',
)
STATIC_ROOT = "/opt/myenv/static/"
STATIC_URL = '/static/'

Answer 1:

正在使用的调试服务器时,静态文件只能由Django的服务。 当该网站是由一个单独的Web服务器来处理,你需要配置Web服务器来服务静态文件本身。



Answer 2:

实际上,它建议使用Django自己的开发服务器(蟒蛇manage.py runserver命令),而你是在本地主机上(从我多年的Django的经验和virtualenv中)。 因为它节省您宝贵的时间在本地配置Nginx的。

但是,如果你想使用Nginx的本地给你提供静态文件,你可能想Django的contrib请** /管理静态文件目录复制到你的virtualenv指向**。 Nginx的你的virtualenv文件(如* .nginx文件)看起来就像这样:

 server_name  localhost;

 location /static {
     alias /path/to/where/your/admin/static/directory/is;
     autoindex on;
     access_log off; #optional
  }

然后重启nginx的,你可能会得到它的工作。 PS:更多有关安装和Mac上的本地配置Nginx的,你可能要检查这个了。



文章来源: Why won't newly installed Django app with NGINX serve static assets?