如何处理Play框架中缺少的静态文件?

时间:2012-10-17 07:11:40

标签: playframework playframework-1.x static-files

我曾经使用Play 1.2.5模板中的以下代码声明我的静态资源:

<img src="@{'/public/images/team/myTeam.png'}"/>

我的问题是当指定的文件丢失时,视图崩溃了......我怎样才能避免这个问题?我更喜欢显示缺少图像的视图而不是视图!

我的上下文:我在Google App Engine上使用Play 1.2.5。

2 个答案:

答案 0 :(得分:0)

<img>是一个HTML标记,其alt属性可用于在图像不可用时显示而不是图像。此外,如果您在调试模式下工作,您可能会看到由play框架生成的错误页面。尝试切换到prod模式并检查结果

答案 1 :(得分:0)

虽然这不是一个直接的答案,也许它会以某种方式帮助你。

一般情况下,我建议将公共静态资源(如应用程序中的图像)删除到某些CDN(我不知道Google的引擎,但快速搜索显示人们会这样做),多亏了这一点,您将避免显示错误页面。 (nota bene显示丢失文件的自定义错误页面没有任何意义,因为您不单独显示图像,但使用<img>标记)

此外,CDN为您提供更多利润,例如在距离客户端更近的位置缓存文件,同时从另一个域中的CDN获取文件,浏览器不会发送完整的冗余内容,如cookie等。最后,您可以更换资源而无需需要重新部署应用程序。