为了账号安全,请及时绑定邮箱和手机立即绑定

GAE:如何上传文件以供应用程序访问?

GAE:如何上传文件以供应用程序访问?

Go
12345678_0001 2021-05-13 17:08:23
我的HTML文件静态规则仍然与模板匹配,即使它们位于子目录中也是如此。将规则更改为不再匹配之后,应用程序可以访问文件。我正在创建一个Google AppEngine应用程序。我正在使用Go语言,但不确定是否相关。我想将模板与单独的模板文件一起使用。因此,应用程序必须读取模板文件。在本地这可行,但是将应用程序上载到GAE后,调用template.ParseFiles()时出现“没有这样的文件或目录”的情况。所以我在想,我必须以某种方式指出模板文件是应用程序文件,以便它们以正确的方式上载。我以为我的模板文件可能是作为静态文件上传的,因此在我的app.yaml- url: /(.*\.html)  static_files: \1  upload: .*\.html所以我将它们移到了自己的目录中。但这并没有改变。我尝试在app.yaml中为我的脚本规则添加上载指令,如下所示:- url: /.*  script: _go_app  upload: templates/.*但这似乎是不允许的。那么谁能告诉我如何从我的GAE应用程序访问模板文件(或任何数据文件)?
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

项目目录中的所有文件都会自动上传。

如果您的应用需要访问它们(在使用模板时就是这种情况),则不能将其标记为静态。这就是第一个解决方案失败的原因。

第二次尝试不起作用,因为上载不是URL描述的成员。

在您的情况下,只需部署您的应用程序,文件就会自动上传并可供您的应用程序使用(您可能需要获取项目的基本路径以构建模板的完整路径)。


查看完整回答
反对 回复 2021-05-17
?
忽然笑

TA贡献1806条经验 获得超5个赞

假设文件不在static_dirstatic_files目录中,则文件将自动上传。请参阅App Engine文档中的“跳过文件”部分。App Engine将此类目录和文件视为静态资源,并且静态资源与应用程序分开提供。

通常无法从应用程序代码访问静态资源。如果必须将模板与其他静态资源放在同一目录中,则可以使用该application_readable设置使这些资源也可供您的应用访问。

但是请注意,您可以将模板放置在应用程序中未映射到静态资源路径的位置。那可能是正确的事情。


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信