1

我有一个巨大的数据目录(~30GB),其中包含我想在我的 Play 应用程序中提供的文件。当我将目录放在公用文件夹中时,应用程序不会完成编译,只会挂起编译

我已经尝试过类似的东西:

GET  /liabilities/*file          controllers.Assets.at("/foo", file)

并在 Build.scala 文件中

// Add your own project settings here
playAssetsDirectories <+= baseDirectory / "foo"

但是,我遇到了与上述相同的问题。

我也试过ExternalAssets

一些正在提供的文件在 javascript 中使用,所以我不能将它们放在单独的本地 ftp 服务器上,否则 javascript 会抱怨。

想法?

4

2 回答 2

4

实际上你不需要(正如你在你的案例中看到的那样)你甚至不应该将资产放在应用程序目录中,而是考虑两种可能性:

  1. 前端 HTTP 服务器,例如nginx,轻巧快速将允许您创建反向代理和/或别名,因此您可以直接从地址中的磁盘提供文件http://domain.tld/public- 在这种情况下,您需要手动编写路径而不是使用Assets.at(...). 实际上,使用这种方法,您还可以提供通用资源,例如布局的 CSS、图像等。
  2. 使用一些专业的 CDN 或云存储,无论如何在这种情况下你需要重新构建你的脚本。
于 2013-04-30T20:17:37.597 回答
0

我找到了一个快速而肮脏的解决方案。在设置一个简单的 http webserver(例如python simple webserver)时,您需要启用跨源资源共享,这将允许 javascript 访问来自不同域的文件。

CORS 内置在多个网络服务器中,但不是 python。我找到了一个可以为 python 执行此操作的脚本。看这里

干杯

于 2013-05-01T15:04:16.903 回答