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

咱们在开发的过程当中,可能须要一些配置,这些配置可能就是仅仅为了开发的方便,比方说,订单过时时间,生产环境须要半小时失效,可是真正开发时,我不可能等上个半小时,因此这个时间这个失效时间咱们会写在配置文件中,这样开发环境和生产环境各一套配置,来回切换很方便的.javascript

  • 基于摘要里的,在Java后台实现很方便,只须要读取properties配置文件便可html

  • 可是在前台js,js是在浏览器里执行的,没法读取服务器上的配置,除非请求后台,可是每次的开销也是挺大的,因此这个想法被ps了java

  • 这时候能够利用nginx,前台静态页面是部署在nginx中,因此咱们能够配置nginx过滤某个js的url,而后指向咱们须要的文件nginx

  • 前台代码api

    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配置的是生产环境,正常配置app

    • 后一个,过滤flower.js,定向到另一个文件夹下url

  • 访问www.company.com就是正式环境debug

  • 访问debug.company.com就是开发环境了

  • 这样就能够实现配置的功能了

相关文章
相关标签/搜索