有两个资产目录,一个是/ui/dist,另一个是/public。我试着写这样的路线:
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /ui/*file controllers.Assets.at(path="/ui/dist", file)但是在编译时会抛出一个错误:
[error] Unspecified value parameter file.
[error] <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">有没有人想办法解决这个问题..。
发布于 2015-03-09 02:01:55
我发现关键是将另一个参数传递给routes.Assets.at,下面是来自资产文件的
GET /javascripts/*file Assets.at("public/javascripts", file)
GET /images/*file Assets.at("public/images", file)然后,在使用反向路由器时,需要指定这两个参数:
<script src="@routes.Assets.at("public/javascripts", "jquery.js")"></script>
<image src="@routes.Assets.at("public/images", "logo.png")">发布于 2015-03-08 14:22:47
尝试为每个路由器创建一个单独的路由器对象:
package controllers
object PublicAssets extends controllers.AssetsBuilder
object UiDistAssets extends controllers.AssetsBuilder然后在你的路线上:
GET /assets/*file controllers.PublicAssets.at(path="/public", file)
GET /ui/*file controllers.UiDistAssets.at(path="/ui/dist", file)我认为在您的尝试中发生的情况是,反向路由器正在为您的公共路由生成一个对象,然后为覆盖第一个路由的ui路由生成一个同名的对象(如果有人知道得更精确,请更正我)。解决方案应该是将您的资产类别命名不同,因此生成的反向路由也有不同的名称(或者,交替地称它们为相同的东西,但将它们放在不同的包中)。
https://stackoverflow.com/questions/28927351
复制相似问题