javascript - AngularJS 中的 HTML5 模式

标签 javascript angularjs html

设置HTML5 模式时刷新页面时遇到问题。导航到 /path 时,它工作正常,但是当我刷新页面或直接输入 localhost/path 它不起作用

HTML5 模式

配置:

$routeProvider
  .when('/path', {
    templateUrl: 'path.html',
  });
$locationProvider
  .html5Mode(true);

您应该在 HTML 文件中设置基础

<html>
  <head>
    <base href="/">
  </head>
</html>

在此模式下,您可以在 HTML 文件中使用不带 # 的链接

<a href="/path">link</a>

浏览器中的链接:

http://www.example.com/base/path

在服务器上更新。目前,我只是使用 gulp 模块进行连接。

var gulp = require('gulp');
var connect = require('gulp-connect');

gulp.task('connect', function(){
  connect.server({
      root: './app',
      port: 8080
  })
})

最佳答案

要使其正常工作,您需要通过index.html覆盖对非静态资源的所有请求...

对于使用 connect-modrewrite 模块进行连接,如下所示:

var connectModRewrite = require('connect-modrewrite');

connect.server({
  root: './app',
  port: 8080,
  middleware: function (connect) {
    return [
      connectModRewrite([
        '!\\.html|\\.js|\\.css|\\.ico|\\.png|\\.gif|\\.jpg|\\.jpeg|\\.swf.*$ /index.html [NC,L]'
      ]),
      connect.static('./app')
    ];
  }
});   

关于javascript - AngularJS 中的 HTML5 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931757/

相关文章:

php - 无法让 Logo 出现在正确的位置以及跨浏览器问题

Javascript 函数在两个特定值之间反转

javascript - $rootScope 事件不工作 Angularjs

html - div布局全高无垂直滚动

javascript - 单击 md-autocomplete (Angular Material) 的 "X"时调用函数

c# - 如何在按钮单击时调用异步?

javascript - 单击时如何在可折叠 div 上同时扩展宽度和高度?

javascript - Ckeditor 工具栏项目在 Vue (Laravel) 中不可用

javascript - 触发浏览器向下翻页

javascript - 无法发出 http 请求 javascript ns 错误失败