提问人:Julian 提问时间:11/18/2023 最后编辑:PuteriJulian 更新时间:11/22/2023 访问量:25
Google Cloud - Angular - 在此服务器上找不到请求的 URL /
Google Cloud - Angular - The requested URL / was not found on this server
问:
错误:未找到 在此服务器上找不到请求的 URL/。
部署在谷歌云上的名为 angular-weather 的 Angular 项目:在此处输入图像描述
正如你所看到的,它有app.yaml文件,如下所示:
runtime: nodejs20
service: weather-front
handlers:
- url: /*
static_files: dist/angular-weather/index.html
upload: dist/angular-weather/index.html
- url: /(.*\.(gif|png|ico|jpg|css|js)(|\.map))$
static_files: dist/angular-weather/\1
upload: dist/angular-weather/(.*\.(gif|png|ico|jpg|css|js)(|\.map))$
执行ng build和gcloud app deploy命令后,我打开已部署的应用程序,它找不到索引或徽标(.ico)。
答:
0赞
Mike
11/22/2023
#1
有几件事要记住......
如果你的第一个处理程序是贪婪的,并且匹配任何东西,那么你的第二个处理程序将永远不会发挥作用。
如果你想要那些确切的处理程序,你需要先执行第二个处理程序,所以它会接受与这些特定模式匹配的任何内容,然后通用处理程序将(几乎)接受剩下的任何内容。 但是,对于这种类型的 Angular 部署,我建议使用更干净/更简单的结构。
考虑为裸根目录放置一个处理程序,然后按原样传递所有其他引用。
请尝试以下操作:
handlers:
- url: /
static_files: dist/angular-weather/index.html
upload: dist/angular-weather/index.html
- url: /(.+)
static_files: dist/angular-weather/\1
upload: dist/angular-weather/.*
所以
https://my.domain.com/ --> 索引.html [第一个处理程序]
https://my.domain.com/index.html --> 索引.html [第二个处理程序]
https://my.domain.com/foo/bar.png --> foo/bar.png [第二个处理程序]
评论