如何将来自Google Drive的Materialize.min.js链接到Google Apps脚本

我得到了一些Google Apps脚本Web应用程序。它们都使用位于其他服务器上的图像文件Materialize.min.css和Materialize.min.js。我想把我控制下的所有这些文件都移到我的谷歌硬盘上。我已经成功地处理了图像文件和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未捕获引用错误:M未在HTMLDocument中定义。

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

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


解决方案

更新:

如chris在此comment中指出的,您可能只需将文件扩展名更改为txtcss文件即可绕过所有安全限制。

URL的格式应为:

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

这是因为Google Drive识别出这是一个js文件,不允许直接链接,但会重定向到一个警告页面,该页面需要最终用户的确认(使用查询字符串confirm=****,如here所述)。遗憾的是,由于CORB,我认为无法检索此确认令牌客户端。

解决方法:

  • 创建简单的Web应用程序函数doGet()

  • 使用ContentService返回数据

  • 使用script src中发布的Web应用URL

相关文章