21

次のように、Google Apps Script で単純な HTML Web アプリを作成するとします。

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 ファイルを追加し、script および link タグを使用してそれらを含めることは可能ですか? または、インライン/別の場所でホストする必要がありますか?

4

5 に答える 5

56

これが私が便利だと思った回避策です:

  1. この関数をサーバー側の Javascript に追加します。

    function getContent(filename) {
        return HtmlService.createTemplateFromFile(filename).getRawContent();
    }
    
  2. <script>必要に応じてまたは<style>タグで囲まれた JS または CSS のみを含む 2 つ目の「html」ファイルをプロジェクトに追加します。

    <!-- myscript.js.html -->
    <script>
        alert("Script included!");
    </script>
    
  3. これで、次のようにスクリプトをメインの HTML テンプレートに含めることができます。

    <?!= getContent("myscript.js") ?>
    

このようにして、JS と CSS を必要な数のファイルに分割し、Apps Script プロジェクト内からすべてのファイルにアクセスできるようにすることができます。

于 2012-08-16T19:06:00.940 に答える
7

Google も同様のソリューションを提供しています

基本的に、この関数を .gs ファイルに追加することをお勧めします。

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .getContent();
}

これらのいずれかまたは両方を .html ファイルに追加します。

<?!= include('Stylesheet'); ?>
<?!= include('JavaScript'); ?>

<script>もちろん、引用符で囲まれた名前は、または<style>タグを使用して JS または CSS コードを含む個別の .html ファイルを参照しています。

于 2015-02-27T22:39:34.427 に答える
3

今のところ、CSSスクリプトとJSスクリプトをGoogleAppsScriptプロジェクトの一部にすることはできません。別の場所でホストし、テンプレートでURLを指定する必要があります。

于 2012-07-08T00:01:10.993 に答える
2

scriptlet タグ内のファイルを直接レンダリングできます。

<?!= HtmlService.createTemplateFromFile("example.js").getRawContent() ?>

example.js.htmlアプリ スクリプト プロジェクトでファイルを作成します。scriptlet タグでのレンダリング中は、拡張子「.html」について言及しないでください。

于 2016-02-20T18:48:27.910 に答える