2013-04-30 102 views
1

我有一個龐大的數據目錄(〜30GB),其中包含我想在我的Play應用程序中提供的文件。當我把目錄中的公用文件夾,應用程序不會完成編譯,將只掛在編譯大型資產在播放框架2.1

我已經嘗試過這樣的:

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

,並在Build.scala文件

​​

但是,我得到了與上面相同的問題。

我也試過ExternalAssets

一些被服務在JavaScript中使用,所以我不能讓他們單獨的本地FTP服務器上或JavaScript會抱怨的文件。

想法?

+0

你要去哪裏發佈它?一些雲,自定義VPS,其他? – biesior 2013-04-30 20:02:58

回答

0

我發現了一個快速和骯髒的解決方案。設置簡單的http網頁服務器(例如python simple webserver)時,您需要啓用cross origin resource sharing,這將允許javascript訪問來自不同域的文件。

CORS內置於幾個網絡服務器,但不是蟒蛇。我發現了一個腳本,這將爲python做到這一點。 See here

乾杯

4

其實你不需要(並且你可以在你的情況看),你甚至不應該把資產apps目錄,而不是考慮兩種可能性:

  1. Frontend HTTP server,爲例nginx, light and fast將允許您創建反向代理和/或aliases,因此您可以直接從地址http://domain.tld/public內的磁盤提供文件 - 在這種情況下,您需要手動寫入路徑而不是使用Assets.at(...)。實際上,使用這種方法,您也可以提供公共資產,如佈局的CSS,圖像等。
  2. 使用一些專業的CDN或雲存儲,無論如何,在這種情況下,您將需要重建腳本。