我正在尝试执行以下操作:
我的工作 Google Web 应用程序包含以下脚本,当然还有 page.html
function getHtmlBlob() {
//Logger.log(e.parameter);
var htmlTemplate = HtmlService.createTemplateFromFile("page");
var htmlBody = htmlTemplate.evaluate().getContent();
Logger.log(htmlBody);
var blob = Utilities.newBlob(htmlBody, MimeType.HTML);
return blob;
}
function doGet(e) {
Logger.log(e.parameter);
var blob = getHtmlBlob();
return HtmlService.createHtmlOutput(blob);
}
我想发布一个带有 page.html 和第一个函数的库,将 webApp 中的库链接为“Lib”,并使用 doGet 如下
function doGet(e) {
//Logger.log(e.parameter);
//var body = Lib.getHtmlBlob();
var body = Lib.getHtmlBlob().evaluate();
return HtmlService.createHtmlOutput(body);
}
但它不起作用,我在运行 webApp 时获取 getHtmlBlob 函数的文本而不是网页(所以至少有一些链接)。调用该函数后,不管有没有 .evaluate() ,这都不起作用。
这就是我所看到的执行 WebApp 的情况
这是不可能的,还是我犯了一些错误? 目标是:发布我的 webApp 和
我已经使用 GAS 库工作了很长时间,但到目前为止只是为了“保护”脚本函数。谢谢您的任何建议
经过多次测试,答案似乎是:
但是
因此,在发布之前,您必须小心主代码和库代码之间的调用不匹配、拼写错误和其他错误。如需更多代码行或主 Web 应用程序代码中的更正,需要新版本。
就我而言,我试图在发布后对齐拼写错误和 Tanaike 建议,并期望它与 /dev 链接一起使用。我移动了库中的大部分代码,所以这是库端
function getHtmlBlob()
{
var htmlTemplate = HtmlService.createTemplateFromFile("page");
//other code here
var htmlBody = htmlTemplate.evaluate().getContent();
var blob = Utilities.newBlob(htmlBody, MimeType.HTML);
return blob;
}
这是网络应用程序的“主”面
function doGet(e)
{
var body = Lib.getHtmlBlob();
return HtmlService.createHtmlOutput(body);
}
谢谢@Tanaike