gpt4 book ai didi

html - 模板解析错误 - "operation not permitted"

转载 作者:IT王子 更新时间:2023-10-29 02:17:16 26 4
gpt4 key购买 nike

我正在开发一个 Google App Engine Go 应用程序,需要在我的一个包中使用一些 HTML 模板。当前文件结构为:

GOPATH/github.com/NAME/PROJECT/
app/
app.go
app.yaml
package/
package.go
Templates/
Template.html

为了包含这个包,我使用:

导入“github.com/NAME/PROJECT/package”

在 package.go 内部,我尝试以各种方式解析我的 Template.html 文件:

//Template, err := template.ParseFiles("package/Templates/Template.html") //doesn't work - "The system cannot find the path specified."
//Template, err := template.ParseFiles("github.com/NAME/PROJECT/package/Templates/Template.html") //doesn't work - "The system cannot find the path specified."
//Template, err := template.ParseFiles("Templates/Template.html") //doesn't work - "The system cannot find the path specified."
//Template, err := template.ParseFiles("/Templates/Template.html") //doesn't work - "The system cannot find the path specified."
Template, err := template.ParseFiles("../package/Templates/Template.html") //works on desktop!

因此,我选择了适用于我的桌面测试环境的最后一个选项,将其上传到 AppEngine,然后我收到了“不允许操作”的新错误...

如何使用如上所示的文件配置解析 HTML 模板,使其同时适用于 App Engine 和桌面?

最佳答案

您需要在应用程序的根目录下安装 app.yaml。 App Engine 使用 app.yaml 的位置来确定哪些文件与您的应用程序关联。您想要将此文件移动到顶层。

例如,假设我们有这样的东西:

app.go
app.yaml
templates/t1
templates/t2

app.yaml 是您的应用程序通常具有的内容,app.go 是:

package app

import (
"html/template"
"net/http"
)

var templates = template.Must(template.ParseGlob("templates/*"))

func init() {
http.HandleFunc("/", rootHandler)
}

func rootHandler(w http.ResponseWriter, r *http.Request) {
name := r.URL.Path[1:] // drop the leading slash
tmpl := templates.Lookup(name)
if tmpl == nil {
http.NotFound(w, r)
return
}
tmpl.Execute(w, nil)
}

templates/t1templates/t2 是合适的模板文件。一旦我们有了这个,我们就可以访问生成的 web 应用程序中的 t1/t2/,它应该可以在 App Engine 上正常服务和部署。

关键是将 app.yaml 放在应用程序的顶层目录中。另一个要记住的注意事项:确保您尝试从动态应用程序读取的任何文件都不是静态提供或跳过的。检查您的 app.yaml。如果要静态提供文件,那么通常只允许前端查看该文件,这意味着您的后端不会。跳过的文件在部署期间会被完全忽略。

关于html - 模板解析错误 - "operation not permitted",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com