玩框架.路线.错误:"方法的参数不够......"

ses*_*ses 6 routes playframework-2.1

有我的路线.第二个是评论.

GET         /assets/*file       controllers.Assets.at(path="/public", file)

#GET         /partials/*file    controllers.Assets.at(path="/public/partials", file)
Run Code Online (Sandbox Code Playgroud)

(我想要的是: 使我位于"/public/partials"文件夹内的html文件可以通过网络获得,与其制作方式相同assets)

一旦我取消注释第二行 - 它将因此行(来自我index.scala.html)而出错:

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
Run Code Online (Sandbox Code Playgroud)

错误就像这里:

方法的参数不足:(path:String,file:String)play.api.mvc.Call.未指定的值参数文件.

问:怎么了?

更新:

换句话说:我想通过提供映射来缩短我的网址.否则,我要使用这个网址:'assets/partials/welcome.html'而不是一个(我想用)'partials/welcome.html'.

还有一个映射可以缩短我的网址.

当我需要从JS部分到达那些时,它就有意义了,就像在一个中有两个应用程序(1.play one,2.js one),还有两个路由器,两个根.对于JS,我假设我已经在/ public(或在资产中) - 这是js应用程序的根目录.

我想知道为什么它不起作用.

man*_*cal 11

播放文档:

反向公共资产的路由

对于路径文件中映射的任何控制器,都会创建一个反向控制器controllers.routes.Assets.您可以使用它来反转获取公共资源所需的URL.例如,从模板:

<script src="@routes.Assets.at("javascripts/jquery.js")"></script>
Run Code Online (Sandbox Code Playgroud)

这将产生以下结果:

<script src="/assets/javascripts/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

请注意,我们folder在反转路径时不指定第一个参数.这是因为我们的routes文件为Assets.at操作定义了一个映射,其中folder参数是固定的.因此不需要明确指定.

但是,如果为Assets.at操作定义两个映射,如下所示:

GET  /javascripts/*file        controllers.Assets.at(path="/public/javascripts", file)
GET  /images/*file             controllers.Assets.at(path="/public/images", file)
Run Code Online (Sandbox Code Playgroud)

然后,在使用反向路由器时,您需要指定两个参数:

<script src="@routes.Assets.at("/public/javascripts", "jquery.js")"></script>
<image src="@routes.Assets.at("/public/images", "logo.png")">
Run Code Online (Sandbox Code Playgroud)

public/partials目录中的任何静态html都可以在/assets/partials/someHtml.html上公开获得.严格来说,您不需要/ partials/*文件路由