使用HtmlService webapp的自定义URL

时间:2015-03-18 10:07:21

标签: google-apps-script

有没有办法使用特定的cname来运行Htmlservice webapp? 我想用app.domain.com之类的东西运行htmlservice app。

我发现这适用于Google网站,但Google网站无法正确管理代码

4 个答案:

答案 0 :(得分:3)

不可能。最多可以使用您的自定义网址并对其进行编程以重定向到您的应用脚本网络应用。这样很容易打字和记忆。

答案 1 :(得分:1)

CNAME记录是Canonical Name记录的缩写,是域名系统(DNS)中的一种资源记录,用于指定域名是另一个域的别名, “规范”域名。所有信息(包括子域,IP地址等)均由规范域定义。 CNAME

但HTML服务可让您提供可与服务器端Apps脚本功能进行交互的网页HTML Service: Create and Serve HTML

对于公共页面(不适用于内部应用程序),这是一个可疑的优势。

如果您真的想拥有Google Apps脚本服务器,则需要在网络服务器上发布页面并通过REST进行交互。

是的,你会丢失Client-side API。你真的需要吗?

例如,您可以发布GihHib页面Setting up a custom domain with GitHub Pages

查看my simple app

上隐藏的Google Drive Host

干杯!

答案 2 :(得分:1)

我发布了通过带有屏蔽功能的Forwarded子域工作的Web应用程序。 URL不会更改,客户端交互也会起作用,并且也会回发到我的文件中。所以代替https://script.google.com/a/bondwood.net/d/1y3iLTLT ....我有mysubdomain.bondwood.net如果我想传递参数我必须抛出一个虚拟角色,所以mysubdomain.bondwood.net/n?arg1=xyz&arg3= ABC

请注意,目前任何响应式设计都是通过子域丢失的,但是通过原始URL工作。这是我发现此时唯一没有工作的事情。

答案 3 :(得分:1)

@Karl_S发布的解决方案适用于已发布的/ exec URL,但不适用于/ dev的解决方案。此外,响应式设计会丢失,因为帧重定向会跳过html包装器中的视口设置。另一种方法是在您的域上托管包装html页面,并在头部添加视口设置,同时保留帧重定向的功能。例如,以下内容对我有用:

<html><head>
  <title>My App</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">   
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <frameset rows="100%">
  <frame src="https://script.google.com/a/.../exec" 
         title="My App" 
         frameborder="0" 
         noresize="noresize">
  </frameset>
</html>

还要确保在禁用跨域限制的情况下发布脚本,即在脚本中确保调用

HtmlService.createTemplateFromFile(...)
  .evaluate()
  .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)

希望它有所帮助。