簡體   English   中英

帶有 gunicorn、django 和 nginx 的靜態文件

[英]static files with gunicorn, django and nginx

我有一個 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設置確實不是一個好主意。 因此,您可以為staticmedia創建符號鏈接,以將項目外的目錄分開。

希望有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM