html5Mode中的Angularjs链接问题[重复]

Posted

技术标签:

【中文标题】html5Mode中的Angularjs链接问题[重复]【英文标题】:Angularjs link issue in html5Mode [duplicate] 【发布时间】:2016-01-18 06:36:45 【问题描述】:

我正在使用angularjs,我正在使用html5Mode

在使用 html5Mode 之前,链接可以在同一页面和新标签页中使用。链接如下:

http://localhost:81/vahidnajafi/#/about

但在 html5Mode 下,它只能在同一页面中工作,但是当我在新标签页中打开它时,它会转到 404 Not found 页面。

http://localhost:81/vahidnajafi/about

谢谢。

【问题讨论】:

您使用的是什么类型的网络服务器? html5Mode 用于单页应用程序,因此它希望应用程序是单页。它按预期工作并在documentation 中描述。 基本上,确保您在 express 应用程序中引用了 Angular 应用程序的主目录:app.use(express.static(path.join(__dirname, 'app_client'))); app.use(function (req,res) res.sendfile(path.join(__dirname, 'app_client', 'index.html')) );并确保你的 templateUrl 路由属性以 / 开头,因此它知道从根目录引用模板的位置,而不是当前目录。 @awimley 谢谢。我应该在哪里使用此代码? templateUrl 修复,在所有它们的开头使用 /,应该在使用 ngRoute 或 routeProvider 的地方使用。其余的(以 app.use 开头)应该在您的 express 应用程序中。 【参考方案1】:

您需要将请求重定向或重新路由到服务器上的根 url。

在 Angular 有机会对该路由执行某些操作之前,您的服务器会返回 404。

【讨论】:

以上是关于html5Mode中的Angularjs链接问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 + AngularJS html5Mode

AngularJS - ui-router - MVC 5 - html5mode

使用 HTML5Mode 配置多个 AngularJS2 项目的 Nginx 配置

当 html5Mode 为真时,AngularJs 路由对服务器进行 HTTP 调用

将 AngularJS html5mode 与 nodeJS 和 Express 一起使用

AngularJS关于带有html5mode页面刷新错误的页面[重复]