【问题标题】:Static content change Google App Engine静态内容更改 Google App Engine
【发布时间】:2012-04-26 21:44:19
【问题描述】:

是否有可能动态更改静态内容?

我在DataStorage 中有数据,而大多数HTML/CSS/JavaScript 内容和各种模板(用于StringTemplate)都是在servlet 部署期间复制到静态文件服务器的。问题是没有内容是纯粹静态的——例如。当客户在网页上要求新图标或更改时,我必须重新部署整个 servlet,有时只是因为静态 HTML 的微小变化。

是否有任何“类似 FTP”的存储或其他更好的方式如何将静态内容放在 GAE 上?

问候, 钢

【问题讨论】:

  • 重新部署有什么问题?这就是部署过程的目的。
  • 采取这种方式 - 5 名开发人员处理应用程序 Java 代码。我们完成应用程序,在源存储库中对其进行标记,然后开始使 UI 变得更好。我们不时更新外观。如果任何开发人员在未来几年的 GAE 应用程序中错误地使用 SVN 进行一些测试或糟糕的 Java 代码,我将重新部署 - 我遇到了麻烦......我需要时刻牢记我必须部署修订版XXX 与数据 YYY。很难简单地维护......
  • 这是一个标准的版本控制/部署问题。你需要建立一个支持这一点的部署过程,否则你将永远无法做一些像部署错误修复这样基本的事情。
  • 同意,同意……就这样吧——当我需要编译和部署 30000 行 java 行时,我感觉不太好,因为一些该死的 png 必须小一个像素……但是当然 - 我们会采用安全的方式使用它。感谢 cmets。

标签: google-app-engine jakarta-ee servlets google-cloud-datastore


【解决方案1】:

很遗憾,没有。您根本无法更改应用程序中的静态内容,因为我相信静态内容在部署过程中会移动到不同的、更高效的静态服务器。

您始终可以考虑通过动态处理程序提供内容 - 将静态内容存储在数据存储中或根据最新版本重定向到不同的文件。鉴于您声明的用例,您需要类似 CMS 的功能,我认为将这些资产存储在数据存储中更有意义,最好也存储在 memcache 中,并动态提供它们。

【讨论】:

  • 嗨,那么静态文件和数据存储是唯一的可能性吗?我不想将所有内容都放入 DataStore - 想象一下包含 50 个图像、CSS、JavaScript 的网页,其中部分是动态呈现的 - 我将如何将其放入 DataStore?这是 GAE 的极其有限的缺点
  • 在您的情况下,重新部署虽然对您来说很麻烦,但在应用效率方面可能是最好的。
  • 嗨,Dave 不会谷歌云存储提供帮助吗?来自 Google 博客:...面向开发人员的 Google Storage,该服务可让您以非常高的可靠性、可用性和性能将数据存储在 Google 的基础架构上。您可以将它用于您的在线存档、存储和提供静态内容(例如图像和视频)、与您的客户和合作伙伴共享数据,以及与其他 Google 服务(如 App Engine)一起使用...
  • 如果您发现这是 appengine 的一个缺点,请等到您真正深入了解... Appengine 是一个权衡取舍的实验(或经验)。
  • @RickMangi 虽然这在技术上是正确的,但我认为真正的问题是你要权衡什么。如果您需要愿意为之牺牲其他东西的收益,那么它是一个很好的平台。
【解决方案2】:

没有。通常人们重新部署整个战争。另请注意,appengine 的 cdn 有时过于热衷于缓存,并且无法手动刷新它,因此如果您的 CSS 和 JavaScript 正在更改,它可能需要 10-15 分钟才能过期。如果存在破坏事物的风险,我们有时会将内部版本号附加到这些资产中。

【讨论】:

  • 嗨 Rick,感谢您分享您的个人经验。我只是在研究如何使用 Google 云存储 - 这不会有帮助吗?
  • 这意味着划分您的站点部署。这些资产多久变化一次?重新部署没什么大不了的。我们使用持续集成服务器来实现,因此只需按一下按钮即可。
猜你喜欢
  • 2016-01-22
  • 2016-06-12
  • 2017-10-06
  • 2010-10-16
  • 2018-07-20
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
相关资源
最近更新 更多