您正在收到正確的根文件夾。 start
命令的意義在於驗證應用程序在生產中的運行方式。所以它構建應用程序,就像你將它推到prod時一樣。然後「將其部署到prod」 - 將其解包到target/universal/stage
文件夾並從該文件夾運行應用程序。因此target/universal/stage
是您正確的根文件夾。
採取立正 - 啓動命令已過時:
[提醒]開始命令已被棄用,並將在遊戲的 未來的版本中刪除。
[警告]要在生產模式下運行Play,請改爲運行 'stage',然後在 target/universal/stage/bin中執行生成的啓動腳本。
[警告]要使用 生產模式測試您的應用程序,請運行'testProd'。
更新
您需要添加到build.sbt
下一個代碼
mappings in Universal ++=
(baseDirectory.value/"usr" * "*" get) map
(x => x -> ("usr/" + x.getName))
這樣說SBT你的 「USR」 文件夾添加到 「生產包」(第一階段) 。採取以關注 - 它不會「鏈接」,這將很難usr
文件夾複製到target/universal/stage
所以你必須target/universal/stage/usr
那就是usr
副本只是在運行命令之前start
謝謝,這是我認爲這是發生。那麼你認爲在'target/universal/stage'中包含我的'usr'文件夾而不是實際的根文件夾是一個好的解決方案嗎? – danielz
我認爲最好的解決方案是將文件放入數據庫。如果你想使用文件系統 - 使用你喜歡的路徑。你的問題是你想從prod模式獲取以開發模式上傳的文件,這是兩種不同的服務器環境。 –
不幸的是,將文件放入數據庫不是一個選項,我需要使用文件系統。是否有跨平臺的方式來獲取實際的根文件夾路徑?我嘗試過的每種方法都給了我'目標/通用/舞臺',這從你的答案中是有道理的。但我正在尋找一種方法來獲取項目的根路徑,而無需對其進行硬編碼。 – danielz