Django 靜態文件配置 (Nginx)


  初學Django,在訪問靜態文件時候遇到很多誤區,一直配置不成功,在此記錄一下。

  Django靜態文件訪問分為兩種:一種是Debug模式下,測試開發網站時對靜態文件的訪問,一種是實際生產環境中對靜態文件的訪問,例如Nginx+Django配置;

  第一種:Debug模式下的配置

   1:在setting.py中開啟Debug

  DEBUG = True

   2:在setting.py中設置靜態文件目錄

STATIC_URL = '/static/'

   3:配置url.py

導入規則包:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
追加規則:
urlpatterns += staticfiles_urlpatterns()

   4:導入js等靜態文件

  在Django項目中的各個APP下新建static文件夾,放入js等靜態文件,以下述方式引用即可:

    <script type="text/javascript" src="/static/function.js"></script>

   5:重啟Django服務器即可

   Ps:如果修改了靜態文件(html,js)無需重啟服務器即生效,如果修改了py文件,請記得重啟DjangoWeb服務器。

  第二種:生產環境中的配置

      注:!!!!!! 請勿將項目和靜態文件部署在Root目錄下,否則Nginx是無法訪問靜態文件的。

  Django+Nginx的配置可通過uwsgi部署。即將80端口接收的流量全部流入django的端口號8000(可修改),即反向代理。

  Django+Nginx的配置請查看http://www.cnblogs.com/fnng/p/5268633.html

  Nginx配置如下:

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
       # / 將數據全部通過  uwsgi_pass 跳轉至8000端口
        location / {
            include uwsgi_params;
            uwsgi_pass 0.0.0.0:8000;
        }
       #靜態文件配置:將靜態文件全部放入static文件加下,訪問/static文件內容時等同於訪問下述文件夾的內容,alias代表絕對路徑
        location /static {
            alias /web/django/JansXin/static;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    

   重載Nginx服務器配置,根據Nginx的配置來訪問Js文件:

  1:放置JS文件test.js:

/web/django/JansXin/static/test.js

  2:訪問JS文件:

1:    <script type="text/javascript" src="/static/test.js"></script>
2: http://www.xxx.com/static/test.js

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM