角网格js状态提供程序,网址中的点不起作用

时间:2016-12-17 20:17:42

标签: angularjs node.js angular-ui-router

我正在使用angular js state provider。我想要这样的网址。 http://localhost:8080/state1/state1.html。它说“不能GET /state1/state1.html”。 这是代码

$stateProvider
    .state('state1', {
        url: '/state1/state1.html',
        templateUrl: "partials/state1.html",
        controller: 'MyCtrl'
    });

当我删除.html时它工作正常。如何在此方案中处理。我正在使用节点服务器

谢谢

3 个答案:

答案 0 :(得分:1)

这是节点服务器或前端路由器配置的问题,大多数情况发生在webpack-dev-server下,或者说它表达的不完美。并且根据RFC3986 unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" 除非您将其打包为自定义解决方案,否则无法将.转换为%2e

如果您的路由器是使用历史记录API在前端实现的,那么您可以打包角度应用程序并提供服务,然后在Nginx或Caddy服务器下编译,它将正常工作。

对于节点服务器或其他服务器,您最好在路由器配置中指定*.*

答案 1 :(得分:0)

    var routerApp = angular.module('routerApp', ['ui.router']);

    routerApp.config(function($stateProvider, $urlRouterProvider) {
        
        $urlRouterProvider.otherwise('/');
        
        $stateProvider

            .state('main', {
                url: '/',
                template: '...'
            })
        
            .state('home', {
                url: '/urlto/home.html',
                template: 'Home page'
            })
            
            .state('about', {
                url: '/urlto/about.html',
                template: 'about page'
            });
            
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.min.js"></script>

    <div ng-app="routerApp">
    <nav class="navbar navbar-inverse" role="navigation">
        <div class="navbar-header">
            <a class="navbar-brand" ui-sref="#">AngularUI Router</a>
        </div>
        <ul class="nav navbar-nav">
            <li><a ui-sref="home">Home</a></li>
            <li><a ui-sref="about">About</a></li>
        </ul>
    </nav>

    <div class="container">

        <div ui-view></div>

    </div>
    </div>

似乎对我来说很好。也许你有HTML5模式和服务器应用程序路由问题?

答案 2 :(得分:0)

带点的网址工作得很好。 Here in this plunker,状态withdot已配置网址/withdot.html,我添加了带点的网址参数,以便进行衡量。 url规范中没有特定的点(.)处理,而状态名称中的点则表示父/子关系。