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
上一篇:CentOS 6.2 二进制安装apache2.4.3出现configure: error: APR-util not found. Please read the documentation的解决方


下一篇:MFC RadioButton