• 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
  • 相关阅读:
    SpringBoot20 集成SpringSecurity02 -> 利用SpringSecurity进行前后端分离的登录验证
    Angular问题04 模块导入错误???、BrowserModule模块重复加载???、material模块引入后报错
    基于http的多进程并发文件服务器
    准备面试的那些事儿2
    ubuntu中解决/usr/bin/ld: cannot find -lxxx
    kafka学习之相关命令
    linux中制作动态库
    kafka之c接口常用API------librdkafka
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    <c和指针>学习笔记6输入输出函数
  • 原文地址:https://www.cnblogs.com/JansXin/p/7442547.html
Copyright © 2020-2023  润新知