If I create a simple HTML web app in Google Apps Script, like this:
function doGet() {
return HtmlService.createHtmlOutputFromFile("index.html");
}
and index.html looks like this:
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<div>Test</div>
is it possible to add JS and CSS files as part of the project and include them using script and link tags, or do they have to be inline/hosted elsewhere?
You can directly render a file inside a scriptlet tag.
Create the
example.js.html
file in your apps script project. While rendering in the scriptlet tag do not mention the extension ".html"For now, it is not doable to have your CSS and JS script to be part of your Google Apps Script project. You will have to host it somewhere else and point the URL in your template.
Here is a workaround I have found useful:
Add this function to your server-side Javascript:
Add a second 'html' file to your project that contains only the JS or CSS surrounded by
<script>
or<style>
tags as appropriate.Now you can include the script in your main HTML template like this:
This way, you can have your JS and CSS split into as many files as you like and keep them all accessible from within the Apps Script project.
Google provides a similar solution here.
Basically, they suggest you add this function to your .gs file:
and add one or both of these to your .html file:
the names in quotes of course referring to separate .html files containing your JS or CSS code with
<script>
or<style>
tags.