browserSync的modRewrite不适用于带有gulp的路径'app/index.html'的angularjs html5mode

Geo*_*Jor 5 mod-rewrite node.js angularjs gulp browser-sync

当我运行gulp时,服务器启动了消息:无法获取/.当我指向localhost:3000/app/index.html时,该站点重定向到localhost:3000/home并正常工作.但是,当我重新加载页面时,它给出:无法获取/ home.

请查看以下配置以查看是否遗漏了任何内容:

访问路径:app/index.html

这是我的gulpfile.js:

var gulp = require('gulp'),
nodemon = require('gulp-nodemon'),
jshint = require('gulp-jshint'),
browserSync = require('browser-sync')
modRewrite  = require('connect-modrewrite');

gulp.task('lint', function () {
  gulp.src('app/js/*.js').pipe(jshint());
});

gulp.task('serve', function() {
  browserSync({
      server: {
          baseDir: "./",
          middleware: [
              modRewrite([
                  '!\\.\\w+$ /index.html [L]'
              ])
          ]
      }
  });
});

gulp.task('default', ['lint', 'serve'], function() {
  gulp.watch('app/js/*.js', ['lint', browserSync.reload]);
});
Run Code Online (Sandbox Code Playgroud)

角度路径文件:

  $urlRouterProvider.otherwise("/home");

  $stateProvider
    .state('home', {
      url: "/home",
      templateUrl: "app/partials/home.html",
      controller: 'HomeCtrl'
    })
...
Run Code Online (Sandbox Code Playgroud)

非常感谢!

Github:https://github.com/yhjor1212/angular-fire-powder

seb*_*nnm 3

在 modRewrite 中使用以下代码:

['^([^.]+)$ /index.html [L]']

例子:

gulp.task('serve', function() {
  browserSync({
      server: {
          baseDir: "./",
          middleware: [
              modRewrite(['^([^.]+)$ /index.html [L]'])
          ]
      }
  });
});
Run Code Online (Sandbox Code Playgroud)