私は、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ファイル。 ありがとうございます!
あなたは設定であなたのURLを書き直すべきですか? –
私は角度に慣れていませんが、プッシュ状態のルーティングを有効にしたいと思うようです。 https://docs.pivotal.io/pivotalcf/1-10/buildpacks/staticfile/index.html#pushstate –
Danielありがとうございます。間違いなくプッシュ状態のルーティングを試してみます。 –