nginx过滤url实现前台js的配置问题

本文介绍了一种通过Nginx配置来实现前端JS动态加载的方法,可以根据不同的环境(如开发环境和生产环境)加载相应的配置文件。这种方法避免了直接从前端请求后端API获取配置信息所带来的额外开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 基于摘要里的,在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'
}
  • nginx的配置
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就是开发环境了
  • 这样就可以实现配置的功能了

转载于:https://my.oschina.net/sunhaojava/blog/510834

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值