带gunicorn,django和nginx的静态文件

时间:2012-12-02 13:16:21

标签: django nginx hosts gunicorn static-files

我有一个django项目,想要使用gunicorn和nginx进行部署。

到目前为止一切正常,但是当我添加子域名时,静态文件不会被提供,而且我的页面看起来很糟糕!

如果我使用localhosts,一切都很完美!

这里我留下了我的nginx.conf:

server {
    listen 80 default;
    client_max_body_size 4G; 
    server_name mytest.dev;

    keepalive_timeout 5;

    # path for static files
    root /Users/danielrodriguez/workspace/mtt/static;

    location / { 
        # checks for static file, if not found proxy to app 
        try_files $uri @proxy_to_app;
    }   

    location @proxy_to_app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        proxy_pass   http://localhost:8000;
    }   
}

我的主持人文件中也有这个:

127.0.0.1   localhost
127.0.0.1   mytest.dev
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

当我输入“mydev.test”时,如何在浏览器中键入“localhost”时,如何使nginx正常工作?我想要做的就是使用apache中的虚拟主机之类的东西在同一物理服务器中为一堆站点提供服务。

PD:我也在使用OS Lion以防万一。

1 个答案:

答案 0 :(得分:3)

您的root设置似乎错误。

root /Users/danielrodriguez/workspace/mtt/static;

您应该检查所请求的css文件的URL。假设您有STATIC_URL = '/static/'您可能希望浏览器加载/static/css/styles.css或类似内容。

因此,文件./static/css/styles.css应该在root目录中找到。

然后右root应为:

root /Users/danielrodriguez/workspace/mtt;

当然,对项目根目录进行root设置真的不是一个好主意。因此,您可以为staticmedia创建符号链接,以在项目之外分隔dir。

希望有所帮助。