Angularjs删除了url中的hashtag但路由错误

时间:2017-01-23 13:59:15

标签: angularjs

我想在一个有角度的网站上请求帮助解决我的网址问题。 我在app.js上添加了这个

$locationProvider.html5Mode({
            enabled: true,
            requireBase: false
        });
问题是,当我尝试将我的网址放入

wwww.websitename.com/admin

它将抛出服务器错误页面..但如果我将输入

www.websitename.com/#admin

它将转到页面,然后将删除主题标签 我希望它即使没有将#放在网址上也能进入页面。 感谢你们 ! :)

2 个答案:

答案 0 :(得分:0)

您需要确保您的服务器配置为返回域后指定的任何路径的相同index.html文件。您还需要为html5mode指定基本href。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <base href="/">
</head>

这是一个很好的article,解释了如何配置角度应用以使用html5mode

答案 1 :(得分:0)

如果您想为Angularjs应用启用HTML5模式,您还必须配置服务器,以便每当请求未知路由时,它都会提供index.html文件。

例如使用expressJS服务器, 在路由定义之后,添加一个catchall路由。

// Add a catchall route here
expressApp.get('*', (req, res) => res.status(200).send({
  // @TODO serve index.html here
}));