我正在使用谷歌脚本来部署网络应用程序。我已经在同一个帐户中完成了大约 5-10 次。当我尝试运行网络应用程序/脚本时,我现在收到:标题和消息中显示“Google Drive:找不到页面”
抱歉,目前无法打开文件。请检查地址并重试。我发布它以作为
所有者运行,但“任何人,甚至匿名”都可以访问。
然后我尝试使用doGet()
方法创建一个新的小项目,该方法返回一个小型静态网页,具有相同的结果。代码.gs:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('Test');
}
测试.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
This is a test
</body>
</html>
我尝试在我的个人帐户中发布上面相同的电子表格/代码,效果很好。由于我已经使用出现错误的帐户部署了一些 Web 应用程序,因此每个帐户的 Web 应用程序数量是否有配额?
我尝试了不同的浏览器、不同的帐户、重新发布、注销并重新登录。同样的错误消息。 “
使用最新代码测试您的网络应用程序”链接也失败。我可以直接在 IDE 中调用 doGet()
方法,它工作正常,并且我在日志中看到输出。我在日志中没有看到任何有关找不到页面的错误,这正是我对找不到页面的期望 - 甚至没有执行代码,因此没有日志。
所以你要做的就是删除 /u/0 或附加的任何内容。
例如:
https://script.google.com/macros/u/1/s/ffffsdds/exec 变为 https://script.google.com/macros/s/ffffsdds/exec
https://script.google.com/a/yourdomain.com/macros/s/ffffsdds/exec
所示 - 请注意,
a/domain.com
已添加。如果您不使用自定义域,请使用
a/gmail.com
。当您登录多个帐户并重定向到
https://script.google.com/macros/s/ffffsdds/exec当您未登录特定域帐户时。
背景信息:
https://script.google.com/macros/u/1/s/ffffsdds/exec
- 如果您使用多个帐户登录则不起作用
https://script.google.com/macros/s/ffffsdds/exec
中 - “/u/x”已被删除,但如果您访问该网址,它仍然会重定向到https://script.google.com/macros/u/1/s/ffffsdds/exec 和 (1) 当您登录多个帐户时,问题仍然存在(但如果您不登录,它仍然有效)。
https://issuetracker.google.com/issues/69270374。多个登录帐户的身份验证已损坏。
正如 Google 开发人员建议的那样,您应该:
注销所有帐户并仅使用 1 个帐户:或
- 使用隐身标签登录
来源(评论292).
可悲的是,正如他们所说:
最初报告的问题是由于最近表格处理多个登录帐户的能力得到了改进。因此,通过改进多个登录帐户,他们也破坏了它。
现在是“好”消息:我们可以预计这个问题将在大约 1 年内得到解决。
我们的团队计划在 21 年第 3 季度开始为新的 Apps Script IDE 和容器绑定脚本提供多登录支持。
解决方案是:
我添加了
const lock = LockService.getScriptLock();
lock.releaseLock();
在我的 doPost 函数之前,日志显示该函数无法执行。这似乎解决了问题。然后我可以从我的代码中删除这个片段,它会继续工作。添加此内容以防其他人遇到此问题并且不想花几天时间来解决它。
appsscript.json
:
{
...
"webapp": {
"access": "MYSELF",
"executeAs": "USER_DEPLOYING"
}
...
}
这应该迫使该项目始终可以由您自己访问。
在此之后,它就像一个魅力!