工做中遇到app和h5混合开发,可是在开发过程当中有时候不用开发环境,h5若是修改后再打补丁上传到测试模拟等服务器,耗费时间,影响开发效率。因此在本地使用nginx启动一个web服务,将h5中的请求转发到对应环境。css
h5修改频繁,静态资源会有缓存问题,获取到的不是最新的。因此在网上百度了下。解决以下:html
修改配置:nginx
location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
{
root D:/git/Bus365H5;
expires 1s;
}git
location ~ .*\.(?:js|css)$
{
root D:/git/Bus365H5;
expires 1s;
}web
location ~ .*\.(?:htm|html)$
{
root D:/git/Bus365H5;
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}缓存
使用expires来设置文件在nginx缓存时间,nginx会在根据url缓存中查找是否有对应文件,文件是否过时。若是在修改配置以前访问过资源,须要清理一下缓存。服务器
有些资源不是在本地,是放在服务器中,可注意匹配规则:app
【=】模式: location = path,此种模式优先级最高(但要全路径匹配)
【^~】模式:location ^~ path,此种模式优先级第二高于正则;
【~ or ~*】模式:location ~ path,正则模式,优先级第三,【~】正则匹配区分大小写,【~*】正则匹配不区分大小写;
【path】模式: location path,中间什么都不加,直接跟路径表达式; svg
location ^~ /wwwtm/public/www/js/tingyun.js {
#rewrite ^.+mrawm/?(.*)$ /$1 break;
#include uwsgi_params;
proxy_pass https://wwwt.bus365.cn/public/www/js/tingyun.js;
}测试
如tingyun.js是放在服务器中,本地不存在。可经过添加匹配规则。