【问题标题】:Hosting angular JS / HTML 5 web app on google app engine?在谷歌应用引擎上托管 Angular JS/HTML 5 网络应用?
【发布时间】:2016-01-02 18:20:28
【问题描述】:

我正在将 google 应用引擎上的 Angular JS/HTML 5 Web 应用程序作为单页应用程序进行托管。我所有的服务也在同一个项目中的谷歌应用引擎上。

我已经使用 yeoman 生成器生成了 angularJS 的基本目录结构。

刚刚在应用引擎项目的 /war/ 文件夹下创建了一个目录,并将 Angular 代码放在其中。

一切正常!!!

那么问题呢?

  1. 这是将 HTML 页面直接放置在 App 引擎的 WAR 文件夹中的正确方法吗?或者我应该将 HTML 文件放在应用引擎项目的 SRC 文件夹下,并在部署期间将它们拉入战争?

  2. 假设有百万用户尝试访问这个单页 Web 应用程序,这样的托管模式是否有助于扩大规模?应用引擎会创建更多实例来服务这个 page.html 吗?

注意:我“不”为 UI 使用任何 GWT。它只是一个战争文件夹下的单页应用程序!

感谢您的投入。

斯里克

【问题讨论】:

  • 你可以正常托管

标签: angularjs google-app-engine


【解决方案1】:
  1. 我相信这完全取决于您的喜好。我将我的角度应用程序放在 /src/main/node 中,并在 maven 包阶段复制 grunt 的输出,如下所示:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.4</version>
      <configuration>
        <archiveClasses>true</archiveClasses>
        <webResources>
          <!-- in order to interpolate version from pom into appengine-web.xml -->
          <resource>
            <directory>${basedir}/src/main/webapp/WEB-INF</directory>
            <filtering>true</filtering>
            <targetPath>WEB-INF</targetPath>
          </resource>
          <resource>
            <directory>${basedir}/src/main/node/dist</directory>
            <filtering>false</filtering>
            <targetPath>/</targetPath>
          </resource>
        </webResources>
      </configuration>
    </plugin>
    

    虽然这对我来说似乎是最干净的解决方案,但您可能不这么认为。只要你的静态内容进入你的战争,它真的无关紧要。

  2. 不会有这方面的实例。静态内容(如 html、js、css 文件)通过 Google 的静态内容代理提供服务,该代理是一个内容交付网络。所以是的,它会扩展,但你不需要静态内容的实例。

【讨论】:

  • 完美!!非常感谢您的精确输入。我也更希望在 SRC 中有源代码并使用部署脚本将其复制,而不是直接将它们放在 WAR 中。
猜你喜欢
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多