2013-08-26 30 views
4

我做了一些Angular路線,如代碼所示。html5Mode在重新加載後給出'未找到'頁面的角度路線

app.config(function($routeProvider, $locationProvider, $provide) { 
    $routeProvider 
    .when('/', { 
     templateUrl: 'home.html', 
     controller: 'AppCtrl' 
    }); 
    .when('/portfolio', { 
     templateUrl: 'portfolio.html', 
     controller: 'AppCtrl' 
    }) 
    $provide.decorator('$sniffer', function($delegate) { 
     $delegate.history = historyCompatCheck(); 
     return $delegate; 
    }); 
    $locationProvider.html5Mode(true); 
}); 

這工作得很好,之後我設置基本href是「/」,它接受一個錨用「/組合」的href,但是當我去「http://url.com/portfiolo」或嘗試重新加載網頁時我在投資組合路線,它會給我一個服務器錯誤。我能做些什麼嗎?

在此先感謝。

回答

7

我自己解決了它..你總是需要在項目的根目錄下創建一個.htaccess文件。包含以下內容:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 
+0

我有一個奇怪的問題:它適用於「簡單」的URL,比如'/ something',但它不適用於複雜的URL,比如'/ something/else' - 任何想法爲什麼? (我用你的.htaccess相同) – Alberto

+0

嗨@Alberto,你應該嘗試閱讀和使用這個:https://github.com/angular-ui/ui-router讓我知道,如果它解決了你的問題:)! – jvakuiler

+2

@Alberto爲了更有幫助,我認爲您需要在您的index.html或index.php中添加您的 ;-) – jvakuiler

0
#BEGIN 

選項+的FollowSymLinks

<ifModule mod_rewrite.c> 
    RewriteEngine on 

    # Don't rewrite files or directories 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 

    RewriteRule ^(.*) your root folder/index.php [NC,L] 

</ifModule> 
    #END 

其工作100%<base href="/"></base> 也添加到您的index.html代碼<head>部分

相關問題