得到一个这样的路线:动态路线不工作的资产在生产
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