如果我在Google Apps脚本中创建一个简单的HTML网络应用,请执行以下操作:
function doGet() {
return HtmlService.createHtmlOutputFromFile("index.html");
}
和index.html如下所示:
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<div>Test</div>
是否可以将JS和CSS文件添加为项目的一部分,并使用脚本和链接标记包含它们,还是必须在其他地方内联/托管?
答案 0 :(得分:44)
以下是我发现有用的解决方法:
将此功能添加到服务器端Javascript:
function getContent(filename) {
return HtmlService.createTemplateFromFile(filename).getRawContent();
}
在您的项目中添加第二个“html”文件,该文件仅包含<script>
或<style>
标记所包围的JS或CSS。
<!-- myscript.js.html -->
<script>
alert("Script included!");
</script>
现在,您可以将脚本包含在主HTML模板中,如下所示:
<?!= getContent("myscript.js") ?>
这样,您可以将JS和CSS拆分为任意数量的文件,并将它们全部从Apps脚本项目中访问。
答案 1 :(得分:7)
Google提供了类似的解决方案here。
基本上,他们建议您将此功能添加到.gs文件中:
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.getContent();
}
并将这些中的一个或两个添加到.html文件中:
<?!= include('Stylesheet'); ?>
<?!= include('JavaScript'); ?>
引号中的名称当然是指包含带有<script>
或<style>
标记的JS或CSS代码的单独.html文件。
答案 2 :(得分:2)
目前,将CSS和JS脚本作为Google Apps脚本项目的一部分是不可行的。您必须在其他地方托管它并将URL指向模板。
答案 3 :(得分:2)
您可以直接在scriptlet标记内呈现文件。
<?!= HtmlService.createTemplateFromFile("example.js").getRawContent() ?>
在您的应用脚本项目中创建example.js.html
文件。虽然在scriptlet标记中进行渲染但未提及扩展名“.html”
答案 4 :(得分:1)
项目中不能有简单的js或css文件,因此您要做的是创建包含该文件的html文件,最好将或