提供AppEngine静态文件

时间:2011-09-27 21:34:45

标签: java google-app-engine

使用appengine提供静态图像和javascript文件的最佳方法是什么?

从我可以看到的有两种方法适用,在设计时将文件存储在您正在上传的服务的war目录中。另一种方法是使用blobstore,在服务之后上传文件。

我看到war目录中的资源文件有150mb的限制(每个文件限制为10mb),但从我可以看到这是更简单的“空闲”空间。它比blobstore慢吗?我不太关心blobstore的动态特性,所以目录似乎是更好的选择。

有人可以提供任何建议吗?我的结论是否正确?

3 个答案:

答案 0 :(得分:9)

将javascript和图像文件放在appengine上的资源文件目录中是很好的。根据我的经验,blobstore和资源文件具有类似的性能特征。

但是,随着网站速度变得越来越重要,使用CDN更快地将静态文件提供给用户可能会更有意义。

如果静态javascript是像jquery或jquery-ui这样常见的东西,我建议立即使用谷歌库API:http://code.google.com/apis/libraries/devguide.html

答案 1 :(得分:4)

提供静态文件(图片,javascript,css)的理想方式是使用<static-files>中的appengine-web.xml声明它们。

http://code.google.com/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files的开头段落很好地说明了这一点:

  

许多Web应用程序都有直接提供给用户浏览器的文件,例如图像,CSS样式表或浏览器JavaScript代码。这些被称为静态文件,因为它们不会更改,并且可以从专用于静态内容的Web服务器中受益。 App Engine提供来自与应用程序服务器分开的专用服务器和缓存的静态文件。

答案 2 :(得分:0)

如果它只是一个普通的网站,它托管一些图像和javascript文件,通常它应该遵循标准的方式将它们放入war目录。 我把这些文件放到blobstore中看不出多少好处,因为你对动态性质没有兴趣。更不用说使用blobstore添加的另一个复杂程度。