我正在尝试在我的网站中为“找不到页面”添加自定义404错误页面,或者输入错误的URL。我有 app.yaml 文件,并使用过Go语言。我的网站基本上位于Google App Engine中。我检查了每个我认为与我的堆栈溢出问题有关的示例。但是在某些示例中,他们用Python或Java语言解释了示例,但我想用Go语言查找。因为我的代码是用Go编写的。
服务器中加载了静态错误404页面,但是当我输入错误的URL时,它显示未找到错误页面,而是我的自定义页面。我已经附上了截图,可以告诉您所有内容。
当前:- https://imgur.com/a/sGrSPyO“这是当前显示的内容”
必填:- https://imgur.com/a/TxL7NMR“这就是我想要的”
我已经阅读了Google App Engine的app.yaml文档,并尝试放置错误处理程序,但是我没有找到任何解决方案。
app.yaml文件代码
runtime: go
api_version: go1
handlers:
-url: /
static_files: www/index.html
upload: www/index.html
-url: /(.*)
static_files: www/\1
upload: www/(.*)
error_handlers:
-file: www/page-not-found.html*
这是更新的app.yaml文件:
runtime: go
api_version: go1
error_handlers:
- file: /page-not-found.html
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/\1
upload: www/(.*)
答案 0 :(得分:0)
可以在app.yaml Configuration File上找到Go应用程序的app.yaml
配置文件的文档。
在该页面上搜索error_handlers
,以了解应如何定义。它具有以下红色警告:
警告:确保错误响应文件的路径与静态文件处理程序路径不重叠。
您指定了:
-file: www/page-not-found.html*
这与您的静态处理程序路径之一重叠:
-url: /(.*)
static_files: www/\1
upload: www/(.*)
这就是为什么不提供您的自定义错误页面的原因。您必须将错误处理程序放置在www
文件夹之外(或不要将整个www
文件夹用作静态处理程序路径,重要的是它们不能重叠)。
注意:我已链接到Go 1.12应用程序配置,因为您使用的Go 1.9已废弃,很快将不可用。尽管如此,关于自定义错误页面的两个版本都相同。