0

私は、www.green.com/、www.green.com/landing、www.greenのような明確なルートを持つAngularJsアプリケーション(v.1.5.7)を持っています。 com/home、etc、...私はStaticfile_buildpackを使ってPCFにangularjsアプリケーションをデプロイしようとしています。私は "root:application"という内容のカスタムStaticfileを持っています。私はindex.html、app.js、および他のangularjsコントローラを "application"ディレクトリの中に持っています。Pivotal Cloud Foundryに配置されたangularjsアプリケーションのNginx.conf

マイangularJsの設定は、以下のルーティングの設定、デフォルトのnginxの構成では

$routeProvider 
.when("/landing", { 
     templateUrl: "landing/landing.html", 
     controller: 'LandingController' 
    }) 

、私のベースURL(www.green.com/)&他の内部ルートを(例えば。持っている/ NGルートを通じて着陸& $ location.path)が適切に配信されました。しかし、私がランディングページ(www.green.com/landing)をリフレッシュすると、404 Not Foundエラーが表示されます。私は、nginxが "landing"という名前のディレクトリを見つけようとしていることを理解しています。

ページリフレッシュの場合、私はindex.htmlがロードされるように、カスタムnginx.confを介してベースURLに要求をリダイレクトしようとしました。 私の存在nginx.confは、以下のようになります。私は、私のサイトをロードしようとしたとき

http{ 
    server { 
     listen <%=ENV["PORT"] %>; 

     index index.html; 

     location /landing { 
      rewrite^http://$host? permanent; 
     } 

     location /{ 
      try_files $uri $uri/ $uri.html /index.html; 
     } 
    } 
} 

が、私は500内部サーバーエラー& PCFログに以下のエラー行を取得しています。私はそれが私のベースURLに正常にリダイレクトして、私に500内部サーバーエラーを与えているwww.green.com/landingロードしようとしたが

[error] 54#0: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html", 

私は

http{ 
    server { 
     listen <%=ENV["PORT"] %>; 

     index /application/index.html; 

     rewrite "^/landing" /application/index.html last; 
    } 
} 

nginx.conf以下を試してみました。しかし、私はPCFログに以下のエラーで、404 Not Foundエラーを得た、

[error] 49#0: *3 open() "/home/vcap/app/nginx/html/application/index.html" failed (2: No such file or directory), 

私が働いてカスタムnginxのを作成するために助けてくださいこの場合、.confファイル。 ありがとうございます!

+0

あなたは設定であなたのURLを書き直すべきですか? –

+0

私は角度に慣れていませんが、プッシュ状態のルーティングを有効にしたいと思うようです。 https://docs.pivotal.io/pivotalcf/1-10/buildpacks/staticfile/index.html#pushstate –

+0

Danielありがとうございます。間違いなくプッシュ状態のルーティングを試してみます。 –

答えて

0

あなたのコードでhtml5Modeを有効にしている場合、あなたはそれとインデックスにベースタグをfile.along設定する必要があり、

server { 
    server_name my-app; 

    index index.html; 

    root /path/to/app; 

    location/{ 
     try_files $uri $uri/ /index.html; 
    } 
} 

これは、角度サイトのnginxの書き換えです。

+0

インデックスファイルにベースタグを設定しました。 しかし、あなたのnginx.confによれば、私は私の質問で述べたようにstaticfileを通して私のルートを設定しています。しかし、ファイルが "/ home/vcap/app/nginx/html /"から配信しようとしている理由がわかりません –

+0

あなたの資産フォルダを '/ home/vcap/app/nginx/html /'右? –

+0

私はhtml5modeを有効にしました。 この変更により、私のURLはwww.green.com/#/landingのように表示され、ページリフレッシュのために404を投げているわけではありません。私はこのままで生き残ることができます。しかし、私はPivotal Cloud Foundry Staticfile_buildpackのnginx設定について学びたい。あなたの考えを分かち合い続けてください。今のところ私は答えとしてBheemaの応答をマークしています。 –

関連する問題