0
我使用Yeoman包管理器來創建一個角度的web應用程序。這是我的主控制器:apache的AngularJS路由問題
'use strict';
angular
.module('resFourApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
])
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl'
})
.when('/contact', {
templateUrl: 'views/contact.html',
controller: 'ContactCtrl'
})
.otherwise({ redirectTo: '/' });
// use the HTML5 History API
// use the HTML5 History API
$locationProvider.html5Mode(true);
});
如果我從基本目錄訪問應用程序,但如果我從URL訪問它,去www.base.com/route我得到一個404錯誤,工作正常。我理解的是因爲Angular是一個客戶端應用程序,所以服務器上沒有任何東西可以處理這些請求。我已經閱讀了很多關於必須重新路由服務器或mod用apache重寫的內容,但是我仍然沒有得到它的工作。
事情我已經試過
Apache rewrite rules not being applied for angularjs
https://groups.google.com/forum/#!msg/angular/GmNiNVyvonk/mmffPbIcnRoJ
我的Apache Web服務器的.htaccess:
# BEGIN angularJS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.html/#/$1
</IfModule>
# END angularJS