如何 link Materialize.min.js 从 Google 驱动器到 Google Apps 脚本

How to link Materialize.min.js from Google Drive to Google Apps Script

我得到了一些 Google Apps 脚本 Web 应用程序。他们都使用图像文件,Materialize.min.css 和 materilize.min.js 坐在其他服务器上。我想将我控制下的所有这些文件移动到我的 google 驱动器上。我已经成功地处理了图像文件和 materialize.min.css,但由于某些原因 maerialize.min.js 导致了问题。

对于我以前使用的 CSS 个文件

link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" / 

我现在用

link rel="stylesheet" 
href="https://drive.google.com/uc?export=view&id=1UQ_tm8_bUOXWj1GdzS8JmkehwVf5sW3A" />

一切正常。

对于JS文件:我曾经使用

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script> <?!= include("page-js");?>"

我试过了

<script src="https://drive.google.com/uc?export=download&id=1SkfRcC1jQwNLRVEUPgjQHSUkEFdg1BND"></script> <?!= include("page-js");?>"

也试过export=view 我收到运行时错误

userCodeAppPanel:47 Uncaught ReferenceError: M is not defined at HTMLDocument.

所以它似乎读取了文件,但似乎没有加载 js????

我不确定如何修复它。 如有任何建议,我们将不胜感激。

更新:

chris in this 所述,您可以简单地将文件扩展名更改为 txtcss 文件以绕过所有安全限制。

URL 的格式应为:

https://drive.google.com/uc?export=download&id=###fileId###

这是因为 Google Drive 识别出这是一个 js 文件并且不允许直接 link,但会重定向到一个警告页面,需要最终用户(使用查询字符串 confirm=****,如 ). Unfortunately, I don't think it's possible to retrieve this confirmation token client side due to CORB.

所述

解决方法:

  • 创建一个简单的网络应用程序函数doGet()

  • Return 数据使用 ContentService

  • script src

    中使用已发布的网络应用程序url