2016-12-13 8 views
0

私はフロントエンドとしてAngularJSを使用し、バックエンドとしてSpring MVCを使用するプロジェクトに取り組んでいます。また、プラグインui-routerを使用しました。ベースURLはlocalhost:8080/PROJECT_NAME/#!のように見えます。私は、URLから/#!/を削除しようとしています。AngularJSとSpring MVCプロジェクトremove '#!'

私は、インターネットからの共通の溶液から正しい結果を得るために失敗しました:私が得たもの、これを行った後

// Insert this into Angularjs module config file 
$locationProvider.html5Mode(true); 

// Add this into META tag 
<base href="/"> 

は、すべてのリソースがクラッシュしているので、私は私のプロジェクト名を追加しました:

<base href="PROJECT_NAME"> 

リソースは正しく取得されますが、ログには次の情報が表示されます。

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: 

(anonymous function) @ angular.js:68 
(anonymous function) @ angular.js:4756 
forEach @ angular.js:357 
loadModules @ angular.js:4717 
createInjector @ angular.js:4639 
doBootstrap @ angular.js:1838 
angular.resumeBootstrap @ angular.js:1867 
maybeBootstrap @ hint.js:569 

次は、あなたの助けが必要な場合があります、ありがとう!


ルータコード:

app.config(
    function ($stateProvider, $urlRouterProvider){ 
     $urlRouterProvider.otherwise("/"); 

     $stateProvider 
      .state('index', { 
       url: "/", 
       templateUrl: "homeview" 
      }); 

     // use the HTML5 History API 
     $locationProvider.html5Mode(true); 
    } 
); 
+0

投稿する外出コード? (たぶんapp.js) –

+0

こんにちは@Nagaveer Gowda私は質問体の末尾に投稿しました、それはかなり標準です。私は春のMVCコントローラからテンプレートURLをサポートしました。 – Darklizard

答えて

0

[1]が設定html5Modeは

<base href="/" /> 

、次のように[2]のindex.htmlにベースURLを設定

.config(["$locationProvider", function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
    $locationProvider.html5Mode(true); 
}]) 

、コードを上記[3]の作成URLをインデックスファイルにリダイレクトするコントローラ

0

#ではなくng-routerに行くそのURLのサーバーに移動する必要がないことAngularJSを通知します。

理想的には削除しないでください。

0

$ locationProviderモジュールを使用して真html5Modeを設定します。以下使用真として

angular.module('StudentView', []). 
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { 

$routeProvider. 
    when('/student', {templateUrl: 'partials/studentList.html', controller: StudentListCtrl}). 
    when('/student/:studentId', {templateUrl: 'partials/studentDetail.html', controller: StudentDetailCtrl}). 
    otherwise({redirectTo: '/phones'}); 

$locationProvider.html5Mode(true); 

    }]); 
+0

ありがとうございます。これは私がやったことですが、角度の代わりにサーバーに行くように見えて、私に404を返しました。 – Darklizard

関連する問題