Google Apps Script Web App: 无法分离出 css 和 js 代码

Google Apps Script Web App: Can't separate out css and js code

我试图将我的 javascript 和样式表与作为 Web 应用程序发布的 Google Apps 电子表格脚本中的主 HTML 文件分开。我已经看到 this answer 问题,但我无法让这种方法为我工作。

当我在 HTML 主文件中有我的样式表和 javascript 时,它工作正常。当我尝试完全按照答案建议将它们分开时,样式表和 javascript 代码未被处理,而是调用 'getContent()' 的行显示在我的浏览器中。看起来 getContent() 根本没有被执行。

我已经尝试将我的代码从电子表格移到独立的 Web 应用程序,但仍然遇到同样的问题。任何想法为什么它不适合我?谢谢!

来自我的一点 Code.gs:

   function doGet() {
      var output = HtmlService.createHtmlOutputFromFile('index');
      output.setSandboxMode(HtmlService.SandboxMode.IFRAME);
      output.setTitle('Dashboard Tool');
      return output;
    }
function getContent(filename) {
  Logger.log('getContent()');  
  return HtmlService.createTemplateFromFile(filename).getRawContent();
}

index.html:

<?!= getContent("stylesheet") ?>
    <div class='header'>Dashboard</div>
    <div id=content>
Content Here
</div>
<?!= getContent("javascript") ?>

'stylesheet.html' 代码被样式标签包围,'javascript.html' 代码被脚本标签包围。

您在 createHtmlOutputFromFile() 中忘记了 evaluate(),因此您也应该使用 createTemplateFromFile。

var output = HtmlService.createTemplateFromFile('index').evaluate();

正如@brian-p 指出的那样,您需要 'Template' 而不是 'Output',因为计算发生在 scriplets <?!= ?>.

在这行代码中:

return HtmlService.createTemplateFromFile(filename).getRawContent();

createTemplateFromFile() 正在使用中。该方法用于创建原始模板,但 getContent() 函数不是用于此目的。使用:

return HtmlService.createHtmlOutputFromFile(filename).getContent();