删除hashbangs后,直接导航到url

时间:2015-08-13 07:10:55

标签: angularjs ionic-framework angular-ui-router

我正在为我的应用使用角度

我想从网址中删除#,所以我按SO answer

中的建议添加了以下行
$locationProvider.html5Mode({
  enabled: true,
  requireBase: false
});

在index.html中,我还按照建议here

添加了以下代码
<head>
  <base href="/">
</head>

当我从家中导航到页面时,一切正常,但是当我复制网址并在新标签页中打开它时,它会抛出404 error

示例

当我启动应用时,它正在打开http://localhost:portno/home。 当我刷新页面时,我收到404错误。

我应该做什么其他配置?

我的代码结构如下

  .state('tab.home', {
            url: '/home',
            views: {
                'tab-home': {
                    templateUrl: 'templates/tab-home.html',
                    controller: 'templeHome'
                }
            }
        })
        .state('tab.list', {
            url: '/list',
            views: {
                'tab-home': {
                    templateUrl: 'templates/list.html',
                    controller: 'templeList'
                }
            }
        })

1 个答案:

答案 0 :(得分:1)

您需要在服务器上添加route,将您重定向到前端的入口点(即:index.html)。

例如,如果您从家中重定向到http://localhost:portno/foo/bar,则您需要route来匹配将/foo/bar重定向到您index.html的{​​{1}} }}

它的迁移看起来像这样(请注意,这是我自己为Hapi编写的示例代码):

server.route([
    {
        method: 'GET',
        path: '/foo/bar',
        handler: function(request, reply) {
            reply.file('./public/index.html');
        }
    }
    ...