我有一个 django 项目,想使用 gunicorn 和 nginx 部署它。
到目前为止一切正常,但是当我添加子域时,静态文件没有提供,我的页面看起来很糟糕!
如果我改用本地主机,一切都会完美无缺!
这里我留下我的 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”时,如何使 nginx 像我在浏览器中键入“localhost”时那样工作?几乎所有我想做的就是使用类似 apache 中的虚拟主机的东西在同一个物理服务器中为一堆站点提供服务。
PD:如果有帮助,我也在使用 OS Lion。
最佳答案
看来你的 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
设置为您的项目根目录并不是一个好主意。因此,您可以为 static
和 media
创建符号链接(symbolic link),以在项目外部分隔目录。
希望对您有所帮助。
关于django - gunicorn、django 和 nginx 的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669619/