gulp browser-sync不提供json文件

时间:2016-01-16 13:56:32

标签: javascript angularjs gulp browser-sync

我遇到一个问题,我无法从子文件夹中提供json个文件。以下是代码:

var browserSync = require('browser-sync').create();

// Static server
gulp.task('connect', function() {
    browserSync.init({
      server: {
        baseDir: "app/"
      }
    });
});

我的所有staticangularjs文件都位于app文件夹中。当我导航到http://localhost:3000时,页面会加载,但app/data/myfile.json内的相应json文件无法加载。

我在控制台中收到以下错误:

  

POST http://localhost:3000/data/json/myfile.json 404(未找到)

奇怪的是,当我尝试在浏览器中加载路径时,json文件会加载。

1 个答案:

答案 0 :(得分:0)

起初我使用这种方式https://www.browsersync.io/docs/options/#option-serveStatic失败。 但是

const ASSET_EXTENSION_REGEX = new RegExp(`\\b(?!\\?)\\.(${config.assetExtensions.join('|')})\\b(?!\\.)`, 'i');
     const DEFAULT_FILE = 'index.html';
...
        server: {
          baseDir: './build',
          middleware: function(req, res, next) {
            let fileHref = url.parse(req.url).href;

            if ( !ASSET_EXTENSION_REGEX.test(fileHref) ) {
              req.url = '/' + DEFAULT_FILE;
            }

            return next();
          }
        }
     ...
  

config = {assetExtensions:[       ' JS&#39 ;,       ' CSS&#39 ;,       ' PNG&#39 ;,       '?JPE克&#39 ;,       ' GIF&#39 ;,       ' SVG&#39 ;,       ' EOT&#39 ;,       ' OTF&#39 ;,       ' TTC&#39 ;,       ' TTF&#39 ;,       ' JSON&#39 ;,       ' woff2&#39?; ]}

SUCCESS