得到一個這樣的路線:動態路線不工作的資產在生產
GET /assets/*file controllers.Assets.at(path="/public", file)
,當我在公共/圖片/照片添加一些圖片/我想以這樣的URL來訪問它們http://localhost:9000/assets/images/pictures/test.jpg
它適用於服務器處於開發模式,但在生產中,我不得不重新啓動它,每次我添加圖像...
我怎麼能繞過呢?
問候。
得到一個這樣的路線:動態路線不工作的資產在生產
GET /assets/*file controllers.Assets.at(path="/public", file)
,當我在公共/圖片/照片添加一些圖片/我想以這樣的URL來訪問它們http://localhost:9000/assets/images/pictures/test.jpg
它適用於服務器處於開發模式,但在生產中,我不得不重新啓動它,每次我添加圖像...
我怎麼能繞過呢?
問候。
正如詹姆斯所說,Play的靜態資產控制器將文件從類路徑中拉出。你也可以定義一個你的應用程序之外的類路徑。
您可以通過在Build文件中定義以下行來完成此操作。
val assetDir = sys.props.get("java.io.tmpdir").get + "/outside-cp"
val main = play.Project(appName, appVersion, appDependencies).settings(
unmanagedClasspath in Runtime += file(assetDir),
unmanagedClasspath in Compile += file(assetDir),
unmanagedClasspath in Test += file(assetDir)
)
現在創建以下目錄:
/tmp/outside-cp/assets
截至去年,創建一個路由,你的外資產:
GET /outside/*file controllers.Assets.at(path="/assets", file)
啓動應用程序並放置一個文件在資產目錄中。現在,您可以通過以下網址訪問該文件:
http://localhost:9000/outside/your-placed.file
注:你不能直接使用的資源目錄的類路徑,因爲玩的資產控制器與路徑自動前綴指定的文件。並且定義一條空路徑不起作用。
如果您運行play stage
來打包應用程序,那麼您必須更改啓動腳本以將類路徑添加到您的應用程序。
Play的靜態資產控制器將文件從類路徑中提取出來,而不是用於動態使用。如果您需要使用動態資產,那麼您需要編寫自己的控制器來處理這個問題。
好的,謝謝,我會寫我自己的控制器。我不需要在應用程序之外有一個資產文件夾。 – Falydoor