2016-04-08 27 views
1

私はポートフォリオをフロントエンド開発者としてビルドしており、まだ開発中です。それをテストするために、FTPを使用して私のjusthostドメインにファイルをアップロードしました。これは成功です。さて、私のサイトはwww.johndoe.comです(これはわかりやすいように私の実際のサイトは 'hassanefall.com'です)。「www.johndoe.com/something」と入力すると404エラーが発生する

(私は経路にangularjsを使用しています)特定のルート/ページに行きたい:www.hassanefall.com/about。 Aboutページは、リンクをクリックしてナビゲートすると動作します。

しかし、URLに正確なURLパスを入力すると、404エラーページが表示されます。

私は '/ work'、 '/ contact'などを持っており、直接URLにアクセスしないと、www.hassanefall.com/contactを入力すると404ページが表示されます。あたかも各ページ/ルートのファイルが存在しないかのようです。ヘルプ?

ここにコードがあります。

注:私は、URLからベース '/'と$ relocationProviderを使用してハッシュを削除しました。これに対する答えがあれば、それは大変感謝しています。

var app = angular.module('mySite', ['ngRoute']); 
app.config(function($routeProvider, $locationProvider){ 

    $routeProvider 
    .when('/', { 
     controller: 'HomeController', 
     templateUrl: 'views/home.html' 
    }) 
    .when('/projects', { 
     controller: 'HomeController', 
     templateUrl: 'views/projects.html' 
    }) 
    .when('/service', { 
     controller: 'HomeController', 
     templateUrl: 'views/service.html' 
    }) 
    .when('/about', { 
     controller: 'HomeController', 
     templateUrl: 'views/about.html' 
    }) 
    .when('/contact', { 
     controller: 'ContactController', 
     templateUrl: 'views/contact.html' 
    }) 
    .when('/portfolio/:id', { 
     controller: 'ItemController', 
     templateUrl: 'views/item.html' 
    }) 
    .otherwise({redirectTo: '/'}); 

    $locationProvider.html5Mode(true); 
}); 

もっとコードサンプルが必要な場合はお知らせください。 :)

答えて

1

サーバーがHTML5モードをサポートしている必要があります。ここで起こっているのは、サーバーがクライアント側のルート(「連絡先」など)を探していて、見つからないということです。そのため、404エラーが見つかりませんでした。

もう1つの解決策は、ハッシュモードに戻ることです。

+0

ありがとう。私はそれを見て、それがサーバーなら、私はハッシュモードに戻ります。プッシュステートのような代替品はありますか?私はこのすべてに新しいです。 :) –

+0

あなたはpushStateを使うことができますが、あなたはディープリンクなどの能力を失います。私はそれを避けるでしょう。 P.S:私の答えが答えとしてマークしてください/クレジットを追加する(: –

関連する問題