Angular(ui-router)路由不完全正常工作?无法通过基本网址直接访问网址

时间:2016-07-21 10:19:59

标签: javascript angularjs routes angular-ui-router

大家好,先谢谢你的帮助,

我正在努力弄清楚为什么我的路由没有完全正常工作。我要解释一下。

我确实有一个带有下拉选项的导航栏,这些选项导致我在我的角度应用配置阶段定义的路线。

HTML

<head>
...
<base href="/">
...
</head>
...
(inside navbar)
<ul class="dropdown-menu">
  <li><a ui-sref="Check">Check</a></li>
</ul>
...

JS(config)

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {
    $locationProvider.html5Mode(true);


$stateProvider

// HOME STATES AND NESTED VIEWS ========================================
    .state('home', {
    url: '/home',
    controller: 'HomeCtrl',
    templateUrl: 'app/components/home/home.html'
});

// SERVICE VIEWS =================================

$stateProvider
    .state('Check', {
        url: '/Check',
        templateUrl: 'app/components/Check/Check.html',
        controller: 'CheckCtrl'
    });
$urlRouterProvider.otherwise('/');

}]);

当我通过家访问时,一切都运行良好(通过index.html - >点击导航栏并访问Check)它正确加载模板。 但是当我试图直接访问该视图时,根本没有任何内容被加载。黑屏。

总结: 行动: 访问localhost:8080 - &gt;全部运行正常 访问localhost:8080 /直接检查 - &gt;没有加载任何东西。

没有想到我在这里失踪的东西。

感谢您的时间和支持。

2 个答案:

答案 0 :(得分:0)

你能把你的server.js文件?

我认为你缺少一些看起来像这样的行:

app.use("/app", express.static(__dirname + "/app"));

答案 1 :(得分:0)

来自他们维基上的常见问题:

  

如何:配置服务器以使用html5Mode

     

当我添加$ locationProvider.html5Mode(true)时,我的网站将不允许粘贴网址。当html5Mode为true时,如何配置我的服务器?

     

启用html5Mode后,您的网址中将不再使用#字符。 #符号很有用,因为它不需要服务器端配置。没有#,url看起来更好,但它也需要服务器端重写。

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode

如何做到这一点取决于您运行的服务器的类型,这一切都在上面链接的文章中解释。