2016-12-17 5 views
0

角度js状態プロバイダを使用しています。私はこのような私のURLが欲しい。 http://localhost:8080/state1/state1.html。 "Can not GET /state1/state1.html"と書かれています。 は、ここでは、コードURLにドットが入っている角度js状態プロバイダが動作しない

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

私は.htmlを削除したときにそれが正常に動作しています。このシナリオでのドットを処理する方法。私は

+0

404をお持ちの場合、それは 'templateUrl:' partials/state1.html ''の '.html'について話していることを意味します。問題はあなたのサーバーから来ていて、角度からではありません。 –

+0

私の更新された質問を読んでください、それはURLだけの問題です。 .htmlをURL(/ state1/state1)で削除すると、うまく動作します。 –

+0

申し訳ありませんが、なぜURLの末尾に.htmlを追加するのかわかりません。 –

答えて

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モードとサーバーアプリのルーティングに問題がありますか?

0

ドットが付いたURLは正常に動作します。 Here in this plunkerの場合、状態withdotにはURL /withdot.htmlが設定されており、適切な対策のためにドット付きのURLパラメータを追加しました。 親/子関係を意味する状態名のドットとは対照的に、URLスペックにはドット(.)の特定の処理はありません。

1

これは、webpack-dev-serverの下で最も発生したノード・サーバーまたはフロントエンド・ルーターの設定に問題があるか、またはその不完全さを表しています。 RFC3986に付属する unreserved = ALPHA/DIGIT/"-"/"."/"_"/"~" .%2eに変換することはできません。カスタマイズされたソリューションとしてパッケージ化しない限りです。

ルータにヒストリーAPIのフロントエンドが実装されている場合は、角度アプリをパッケージ化してNginxまたはCaddyサーバーでコンパイルして正常に動作します。

ノードサーバーなどの場合は、ルータ設定で*.*を指定することをお勧めします。

関連する問題