Nginx.conf 用于在 Pivotal Cloud Foundry 上部署的 angularjs 应用程序
Nginx.conf for angularjs application deployed on Pivotal Cloud Foundry
我有一个 AngularJs 应用程序 (v.1.5.7),它有明确的路线,例如 www.green.com/ 、 www.green.com/landing 、 www.green .com/home 等...我正在尝试使用 Staticfile_buildpack 在 PCF 中部署 angularjs 应用程序。我有一个内容为 "root : application" 的自定义静态文件。我的 index.html、app.js 和其他 angularjs 控制器位于 "application" 目录中。
我的 angularJs 配置具有以下路由配置,
$routeProvider
.when("/landing", {
templateUrl: "landing/landing.html",
controller: 'LandingController'
})
使用默认的 nginx 配置,我的基础 url (www.green.com/) 和其他内部路由(例如 /landing through ng-route & $location.path)得到了正确的服务.但是当我刷新登录页面 (www.green.com/landing) 时,它给了我一个 404 Not Found 错误。我知道 nginx 正在尝试在此处找到名为 "landing" 的目录。
在页面刷新的情况下,我尝试通过自定义 nginx.conf 将请求重定向回我的基础 url,以便加载我的 index.html。
我的礼物 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 日志中的以下错误行。
[error] 54#0: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html",
然而,当我尝试加载 www.green.com/landing 时,它成功重定向到我的基地 url,然后给我一个 500 内部服务器错误。
我尝试了以下 nginx.conf
http{
server {
listen <%=ENV["PORT"] %>;
index /application/index.html;
rewrite "^/landing" /application/index.html last;
}
}
但我收到 404 Not Found 错误,PCF 日志中显示以下错误,
[error] 49#0: *3 open() "/home/vcap/app/nginx/html/application/index.html" failed (2: No such file or directory),
在这种情况下,请帮助我创建一个有效的自定义 nginx.conf 文件。
提前致谢!
如果您在代码中启用了 html5Mode
,则需要在索引 file.along 中设置基本标签,
server {
server_name my-app;
index index.html;
root /path/to/app;
location / {
try_files $uri $uri/ /index.html;
}
}
这是 angular 站点的 Nginx 重写。
我有一个 AngularJs 应用程序 (v.1.5.7),它有明确的路线,例如 www.green.com/ 、 www.green.com/landing 、 www.green .com/home 等...我正在尝试使用 Staticfile_buildpack 在 PCF 中部署 angularjs 应用程序。我有一个内容为 "root : application" 的自定义静态文件。我的 index.html、app.js 和其他 angularjs 控制器位于 "application" 目录中。
我的 angularJs 配置具有以下路由配置,
$routeProvider
.when("/landing", {
templateUrl: "landing/landing.html",
controller: 'LandingController'
})
使用默认的 nginx 配置,我的基础 url (www.green.com/) 和其他内部路由(例如 /landing through ng-route & $location.path)得到了正确的服务.但是当我刷新登录页面 (www.green.com/landing) 时,它给了我一个 404 Not Found 错误。我知道 nginx 正在尝试在此处找到名为 "landing" 的目录。
在页面刷新的情况下,我尝试通过自定义 nginx.conf 将请求重定向回我的基础 url,以便加载我的 index.html。 我的礼物 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 日志中的以下错误行。
[error] 54#0: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html",
然而,当我尝试加载 www.green.com/landing 时,它成功重定向到我的基地 url,然后给我一个 500 内部服务器错误。
我尝试了以下 nginx.conf
http{
server {
listen <%=ENV["PORT"] %>;
index /application/index.html;
rewrite "^/landing" /application/index.html last;
}
}
但我收到 404 Not Found 错误,PCF 日志中显示以下错误,
[error] 49#0: *3 open() "/home/vcap/app/nginx/html/application/index.html" failed (2: No such file or directory),
在这种情况下,请帮助我创建一个有效的自定义 nginx.conf 文件。 提前致谢!
如果您在代码中启用了 html5Mode
,则需要在索引 file.along 中设置基本标签,
server {
server_name my-app;
index index.html;
root /path/to/app;
location / {
try_files $uri $uri/ /index.html;
}
}
这是 angular 站点的 Nginx 重写。