谷歌云盘页面未找到 - 抱歉,此时无法打开文件。

42

我正在使用Google脚本部署Web应用程序。在同一帐户中,我已经完成了大约5-10个。当我尝试运行Web应用程序/脚本时,现在会出现一个标题为“Google Drive: 页面未找到”的消息。

抱歉,无法此时打开文件。请检查地址并重试。

我将其发布为以所有者身份运行,但对“任何人,包括匿名用户”可访问。

然后我尝试创建一个新的小项目,其中包含一个doGet()方法,返回一个小的静态网页,但结果相同。

Code.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应用程序数量配额?

我尝试了不同的浏览器、不同的账户、重新发布以及重新登入和登出。出现了相同的错误信息。"使用最新代码测试您的Web应用程序"链接也失败了。我可以直接调用IDE中的doGet()方法,它可以正常工作,并且我可以在日志中看到输出。

对于未找到页面错误,日志中没有任何信息,这是我对未找到页面的预期-甚至没有到达代码执行阶段,因此也没有日志。


我建议你看一下这个链接,希望你能找到文件丢失的原因。 - James
这不是缺失的文件,而是一个脚本。我正在尝试运行Web应用程序。 - Douglas Russell
@DouglasRussell,我能得到你最新页面的链接吗? - imox
https://script.google.com/macros/u/0/s/AKfycbw02kz47Oa8Kd-akFQ2IY8E2kaYcKgIOeLQbzspxWO46R-HOe45/exec - Douglas Russell
7个回答

83

我很高兴你找到了它,Ben。我和它纠缠了一天,然后突然看到了/u/0并意识到了。 - imox
4
调整“/u/0”并没有奏效,但退出所有其他账号后问题解决了。 - GeorgeButter
1
有没有办法让部署为Web应用程序的URL中去掉“/u/0”? - Cooper
谢谢!我必须在重定向之前迅速复制URL,并从那里进行编辑。 - Tim Malone
2
当我删除 /u/0 时,它会被附加在 URL 中,我无法将其删除。 - Ossarotte
显示剩余4条评论

13

我同时打开了几个Gmail账户并一直遇到这个问题。我发现关闭Drive窗口,注销与其相关的电子邮件帐户,然后重新登录Gmail帐户并再次打开Drive有所帮助。


10
您需要将您的组织域名添加到URL中,例如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
背景信息:
  1. https://script.google.com/macros/u/1/s/ffffsdds/exec - 如果您已登录多个帐户,则无法工作。

  2. https://script.google.com/macros/s/ffffsdds/exec中删除“/u/x”,但如果您访问该URL,它仍将重定向到https://script.google.com/macros/u/1/s/ffffsdds/exec,并且(1)问题仍然存在,当您登录多个帐户时(但是如果您没有登录,则可以正常工作)。


你的最终解决方案帮了我很多。你能解释一下/a/yourdomain.com是什么吗? - Radek
2
许多Google账户都绑定了自定义域名(产品Google Workspace)。一个人可以使用相同或不同的域名(包括gmail.com)登录多个账户。如果脚本归自定义用户账户所有,则需要在URL中包含(3)自定义域名才能访问它。 - user1749939
从开发者的角度来看,这应该是被接受的答案。这样可以使脚本 URL 在用户登录了多少个 Google 账户时都能正常工作。 - Mike Eng
我也遇到了同样的问题——有多个Gmail帐户,当我尝试使用与开发Web应用程序所用帐户不同的帐户测试我的部署应用程序时,页面未找到。我正在尝试遵循上面的解决方案,但无法成功。应该使用哪个域——用户还是开发者,并且“gmail.com”应该是常量还是实际电子邮件地址?我正在编辑地址/位置栏中的部署应用程序,但每次它都会忽略我的编辑并更正回“/u/x”。有什么帮助吗? - Jim Burke

2
看起来这与此问题有关:https://issuetracker.google.com/issues/69270374。多个已登录帐户的身份验证出现问题。
正如Google开发者所建议的那样,您应该:
1. 注销所有帐户并仅使用一个帐户:或者 2. 使用无痕标签进行登录 来源(评论292)
令人遗憾的是,正如他们所说的:
最初报告的问题是由于Sheets能够处理多个已登录帐户的最新改进而导致的。 来源(评论11) 因此,通过改进多个已登录帐户,他们也破坏了它。
现在的“好”消息是:我们可以期望在大约1年内修复此问题。
我们的团队计划在Q3'21开始为新的Apps Script IDE和容器绑定脚本工作多登录支持。 来源(评论292)

1
以上所有答案都是相关的。但对我来说,问题是由于Google账户中缺乏空间导致的。我已经使用了Google提供的全部15GB空间,然后我的所有Google表格都显示上述错误。
解决方法如下:
1.从Google购买额外的空间,这不会花费太多。对于100GB,每月花费130卢比或每年花费1300卢比。 2.释放您的空间。浏览Google Drive,您可能会发现很多不必要的文件。删除它并腾出一些空间。

1
我已经释放了很多空间,但仍然遇到错误。在你释放空间后,大约多久错误消失了?是立即消失吗?还是需要一些时间? - rinogo
@rinogo,是的,它花了一些时间才反映出变化。 - Muhammed Shihabudeen Labba A

0
这个错误肯定与用户认证逻辑有关。对我来说,问题不在于我登录了多个账户,而是在appsscript.json中添加了以下内容才解决了问题。
{
  ...
  "webapp": {
    "access": "MYSELF",
    "executeAs": "USER_DEPLOYING"
  }
  ...
}

这样做应该能确保项目始终可以被您访问。 之后它就像魔术般地运行起来了!

0
我曾经遇到过这样的问题,即我在多个帐户上都没有登录。最终问题出在我使用了LockService,似乎它在某个地方被损坏了。
我添加了
const lock = LockService.getScriptLock();
lock.releaseLock();

在我的doPost函数之前,日志显示执行失败。这似乎修复了问题。然后我可以从代码中删除此片段,并且它继续工作。

如果有其他人遇到此问题并且不想花费几天时间解决,可以参考这个解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接