我有一台运行OS X 10.9.3的Mac。我正在尝试设置由gunicorn服务的PostgreSQL数据库支持的Django应用程序,以及NGINX提供的静态资产。我是Django的老手,MySQL使用开发服务器(manage.py runserver
)运行。但我很擅长用virtualenv,gunicorn和NGINX来设置它。所以我按照说明here。
我的Django项目在http://localhost:3026
成功投放。作为对数据库连接的测试,我想看一下Django Admin界面。我访问了http://localhost:3026/admin/
。我在下面提供了截图。
为什么这个管理页面看起来如此丑陋?它缺乏必要的图形界面和它应该具有的CSS?看起来NGINX没有正确地提供这些静态资产。我该如何排除故障并解决此问题?
我甚至做过python manage.py collectstatic
。那就成功地将所有静态文件复制到/opt/myenv/static
的所有静态文件中(我认为?)。您可以看到该命令here的输出。然后我重新开始了gunicorn和nginx。我以为这会解决它。但不幸的是,它并没有。问题仍然存在。在我的Django settings.py文件中,我按如下方式配置了STATIC变量:
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'djangobower.finders.BowerFinder',
)
STATIC_ROOT = "/opt/myenv/static/"
STATIC_URL = '/static/'
答案 0 :(得分:1)
静态文件仅在使用调试服务器时由Django提供。当站点由单独的Web服务器处理时,您需要配置Web服务器以提供静态文件本身。
答案 1 :(得分:0)
实际上,建议您在使用当地主机时使用Django自己的开发服务器(python manage.py runserver)(根据我多年的Django和virtualenv经验)。因为它节省了您在本地配置nginx的宝贵时间。
但是,如果您确实希望使用Nginx在本地为静态文件提供服务,则可能需要将 django的contrib ** / admin 静态文件目录复制到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的更多信息,您可能需要检查this。