为了账号安全,请及时绑定邮箱和手机立即绑定

没有散列“#”的AngularJS路由

没有散列“#”的AngularJS路由

哔哔one 2019-06-18 10:50:50
我正在学习AngularJS,有一件事让我很恼火。我用$routeProvider要声明我的应用程序的路由规则:$routeProvider.when('/test', {   controller: TestCtrl,   templateUrl: 'views/test.html'}).otherwise({ redirectTo: '/test' });但是当我在浏览器中导航到我的应用程序时,我看到app/#/test而不是app/test.所以我的问题是为什么AngularJS会添加这个哈希#去URL?有可能避免吗?没有散列“#”的AngularJS路由
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

如果像其他人所说的那样启用html 5模式,则创建.htaccess文件中包含以下内容(根据您的需要进行调整):

RewriteEngine   OnRewriteBase     /RewriteCond     %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)RewriteCond   
  %{REQUEST_FILENAME} !-fRewriteCond     %{REQUEST_FILENAME} !-dRewriteRule     ./index.html [L]

当用户进入正确的路径时,用户将被引导到您的应用程序,而您的应用程序将读取该路径,并将他们带到正确的“页面”中。

编辑:只需确保没有任何文件或目录名称与您的路由冲突。


查看完整回答
反对 回复 2019-06-18
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

让我们写一个简单而简短的答案。

在路由器的末尾添加html 5模式(真);

app.config(function($routeProvider,$locationProvider) {

    $routeProvider.when('/home', {
        templateUrl:'/html/home.html'
    });

    $locationProvider.html5Mode(true);})

在html头中添加底座标签

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


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 563 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信