静态文件指JS、css、图片等文件,在django项目投入生产中时,可以不必在setting中指明静态文件的路径,只需在nginx的站点配置中指明即可,详解如下:
先上工程目录:
opt
----MyBlog
-----MyBlog
-----static
-----js
-----images
-----css
-----Templates
-----myapp
我的项目图片是保存在images的目录下,js和css目录保存对应格式的文件。
HTML文件文件中图片加载URL如下:
<img src="/static/images/timg7AV7OGD0.jpg" alt="图片打开失败" />
nginx站点静态配置文件如下:
location ~ .*/static/images/(.*)\.(gif|jpg|jpeg|png|bmp|swf|svg)$ {
alias /opt/MyBlog/static/images/$1.$2;
}
location ~ .*/(.*)\.(js|css)$ {
alias /opt/MyBlog/static/$2/$1.$2;
}
~ .*/static/images/(.*)\.(gif|jpg|jpeg|png|bmp|swf|svg)$是正则表达式,alias /opt/MyBlog/static/images/$1.$2;是图片的路径。意义就是html文件在加载URL类似static/images/*.jpg的图片时,会通过路径/opt/MyBlog/static/images/寻找*.jpg图片文件。也就是说在配置静态文件时,查看HTML文件中图片的URL,并保持和location后的URL一致,然后在alias后面写上项目保存图片目录的绝对路径。
js和css的配置大致一致,不过需要注意的是$2/$1.$2代表是查找css目录下的*.css文件或js目录下的*.js文件。