在Google Apps脚本网络应用中使用项目Javascript和CSS文件?

时间:2012-07-05 12:16:12

标签: google-apps-script

如果我在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文件添加为项目的一部分,并使用脚本和链接标记包含它们,还是必须在其他地方内联/托管?

5 个答案:

答案 0 :(得分:44)

以下是我发现有用的解决方法:

  1. 将此功能添加到服务器端Javascript:

    function getContent(filename) {
        return HtmlService.createTemplateFromFile(filename).getRawContent();
    }
    
  2. 在您的项目中添加第二个“html”文件,该文件仅包含<script><style>标记所包围的JS或CSS。

    <!-- myscript.js.html -->
    <script>
        alert("Script included!");
    </script>
    
  3. 现在,您可以将脚本包含在主HTML模板中,如下所示:

    <?!= getContent("myscript.js") ?>
    
  4. 这样,您可以将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文件,最好将