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
原文地址:https://www.cnblogs.com/JansXin/p/7442547.html