AngularJS 如果将其作为新地址插入,路由将不起作用
AngularJS route doesn't work if its inserted as new address
我创建了一个简单的 angularjs 应用。
这是我的配置:
app.config(function ($routeProvider, $locationProvider)
{
$routeProvider.when("/home", {
controller: "homeController",
templateUrl: "/views/home.html"
});
$routeProvider.when("/login", {
controller: "loginController",
templateUrl: "/views/login.html"
});
$routeProvider.otherwise({ redirectTo: "/home" }); // or notfound.html
$locationProvider.html5Mode(true);
});
在我的 index.html
<base href="/">
当我从 index.html
(localhost/index.html) 文件启动网站时,一切都很好。 url 更改为 localhost/home
或 localhost/login
一切正常。
但是当我使用 home 或 login url 时,我收到 404 错误。
您需要让服务器参与处理 404 错误。
http://localhost/home
当浏览器询问时查找您服务器上的主路径或 home.html 当找不到时您得到 404
当您在 angular 应用程序中 select 一个 link 时,它将加载 index.html(应用程序)并路由到 #/home
然后重新寻址至 /home
您可以将服务器设置为将所有流量路由到 /
并让应用处理路由。
在此处查找类似的解决方案。
AngularJS Dynamic Routes Without Hashtag
编辑
将 404 重定向到主索引 Configuring custom ASP 404 page with redirect for IIS7 website
如果您 运行 没有网络服务器,则需要在链接前加上 #
符号。
<a href="#/login">
AngularJS routing without a web server
我创建了一个简单的 angularjs 应用。
这是我的配置:
app.config(function ($routeProvider, $locationProvider)
{
$routeProvider.when("/home", {
controller: "homeController",
templateUrl: "/views/home.html"
});
$routeProvider.when("/login", {
controller: "loginController",
templateUrl: "/views/login.html"
});
$routeProvider.otherwise({ redirectTo: "/home" }); // or notfound.html
$locationProvider.html5Mode(true);
});
在我的 index.html
<base href="/">
当我从 index.html
(localhost/index.html) 文件启动网站时,一切都很好。 url 更改为 localhost/home
或 localhost/login
一切正常。
但是当我使用 home 或 login url 时,我收到 404 错误。
您需要让服务器参与处理 404 错误。
http://localhost/home
当浏览器询问时查找您服务器上的主路径或 home.html 当找不到时您得到 404
当您在 angular 应用程序中 select 一个 link 时,它将加载 index.html(应用程序)并路由到 #/home
然后重新寻址至 /home
您可以将服务器设置为将所有流量路由到 /
并让应用处理路由。
在此处查找类似的解决方案。 AngularJS Dynamic Routes Without Hashtag
编辑
将 404 重定向到主索引 Configuring custom ASP 404 page with redirect for IIS7 website
如果您 运行 没有网络服务器,则需要在链接前加上 #
符号。
<a href="#/login">
AngularJS routing without a web server