2012-07-05 58 views
14

Si creo una sencilla aplicación web HTML en Google Apps Script, así:¿Utiliza los archivos Javascript y CSS del proyecto en una aplicación web de Google Apps Script?

function doGet() { 
    return HtmlService.createHtmlOutputFromFile("index.html"); 
} 

y index.html se ve así:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
<div>Test</div> 

es posible añadir archivos JS y CSS como parte del proyecto e incluirlos usando secuencias de comandos y etiquetas de enlace, o tienen que estar en línea/hospedados en otro lugar?

+0

No es exactamente lo que estaba solicitando, pero una posible solución alternativa: la API google.script - https://developers.google.com/apps-script/html_service # GoogleScriptAPI – TomTasche

+0

Me encontré con este problema recientemente. Bien encuentre aquí – qodeninja

Respuesta

2

Por ahora, no es posible tener su script CSS y JS para ser parte de su proyecto de Google Apps Script. Tendrá que alojarlo en otro lugar y señalar la URL en su plantilla.

37

Aquí es una solución que he encontrado útil:

  1. Añadir esta función a tu JavaScript del lado servidor:

    function getContent(filename) { 
        return HtmlService.createTemplateFromFile(filename).getRawContent(); 
    } 
    
  2. Agregar un segundo archivo 'html' a su proyecto que contiene solo el JS o CSS rodeado por las etiquetas <script> o <style> según corresponda.

    <!-- myscript.js.html --> 
    <script> 
        alert("Script included!"); 
    </script> 
    
  3. Ahora puede incluir el guión en su plantilla HTML principal de esta manera:

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

De esta manera, usted puede tener sus JS y dividida CSS en tantos archivos como desee y mantenerlos accesibles desde el proyecto Apps Script.

+0

esto es mucho mejor que la respuesta seleccionada. –

+1

Eso es porque cuando la pregunta fue respondida, esa fue la única solución válida. Google agregó esta funcionalidad * después del hecho, y el OP nunca cambió la respuesta aceptada.Esta es una de las razones por las cuales existe votaciones ascendentes: la comunidad sabe cuál es la solución preferida, en caso de que la respuesta aceptada esté desactualizada. –

+1

Alf - POKE, probablemente debería cambiar la respuesta aceptada, ya que resuelve el problema razonablemente bien. – Mogsdad

6

Google proporciona una solución similar here.

Básicamente, sugieren agregar esta función a su archivo .gs:

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

y agregar uno o ambos de estos para su archivo html:

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

los nombres entre comillas de Por supuesto, se refiere a archivos .html separados que contienen su código JS o CSS con las etiquetas <script> o <style>.

1

Puede representar directamente un archivo dentro de una etiqueta scriptlet.

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

Crear el archivo example.js.html en su proyecto Apps Script. Durante la representación en la etiqueta scriptlet, no mencione la extensión ".html"

Cuestiones relacionadas