- 基于摘要里的,在Java后台实现很方便,只须要读取properties配置文件便可
- 可是在前台js,js是在浏览器里执行的,没法读取服务器上的配置,除非请求后台,可是每次的开销也是挺大的,因此这个想法被ps了
- 这时候能够利用nginx,前台静态页面是部署在nginx中,因此咱们能够配置nginx过滤某个js的url,而后指向咱们须要的文件
- 前台代码
index.html
<!-- 即配置文件 -->
<script src="/config.js"></script>
<!-- 动态加载js -->
<script type="application/javascript">
if (config.devMode == 'dev') {
loadJs("开发环境的js");
} else {
loadJs("开发环境的js");
}
function loadJs(url, callback) {
// 实现
}
</script>
- 配置文件(生产环境配置和开发环境的配置在不一样路径下,可是文件名同名)
var config = {
// 或者 prd
devMode: 'dev',
// 还能够配置请求后台的url前缀
serverUrl: 'http://dev.company.com'
// serverUrl: 'http://api.company.com'
}
server {
listen 80;
server_name www.company.com;
location / {
root /Users/sunhao/Documents/company/project;
index index.html;
try_files $uri $uri/ /index.html;
expires -1;
}
}
server {
listen 80;
server_name debug.company.com;
location / {
root /Users/sunhao/Documents/company/project;
index index.html;
try_files $uri $uri/ /index.html;
expires -1;
}
location ~ .flower\.js$ {
root /Users/sunhao/Documents/company/project/js;
}
}
- 前一个server配置的是生产环境,正常配置
- 后一个,过滤flower.js,定向到另一个文件夹下
- 访问www.company.com就是正式环境
- 访问debug.company.com就是开发环境了
- 这样就能够实现配置的功能了