Routes 播放框架。路线。错误:";没有足够的参数用于…”处的方法;
这是我的路线。第二个是评论Routes 播放框架。路线。错误:";没有足够的参数用于…”处的方法;,routes,playframework-2.1,Routes,Playframework 2.1,这是我的路线。第二个是评论 GET /assets/*file controllers.Assets.at(path="/public", file) #GET /partials/*file controllers.Assets.at(path="/public/partials", file) (我想要的是:使位于“/public/partials”文件夹中的html文件可以通过web访问,方法与为资产制作的html文件相同) 一旦我取消
GET /assets/*file controllers.Assets.at(path="/public", file)
#GET /partials/*file controllers.Assets.at(path="/public/partials", file)
(我想要的是:使位于“/public/partials”
文件夹中的html文件可以通过web访问,方法与为资产制作的html文件相同
)
一旦我取消第2行的注释,它将由于这一行而出现错误(从我的index.scala.html
):
错误如下所示:
方法的参数不足:(路径:字符串,文件:
字符串)play.api.mvc.Call。未指定的值参数文件
Q:怎么了
更新:
另一句话:我想通过提供映射来缩短我的url。否则,我必须使用这个url:'assets/partials/welcome.html'
,而不是我想要使用的那个url:'partials/welcome.html'
只要再映射一次,我的URL就会变短
当我需要从JS部分访问这些应用程序时,这是有意义的,就像在一个应用程序中有两个应用程序(1.play one,2.JS one),还有路由,两个根。对于JSONE,我假设我已经在/public(或在资产中)-这是JS应用程序的根目录
我想知道为什么它不起作用。来自:
公共资产反向路由
对于routes文件中映射的任何控制器,将在controllers.routes.Assets
中创建反向控制器。您可以使用它来反转获取公共资源所需的URL。例如,从模板:
<script src="@routes.Assets.at("javascripts/jquery.js")"></script>
然后,在使用反向路由器时,需要指定两个参数:
<script src="@routes.Assets.at("/public/javascripts", "jquery.js")"></script>
<image src="@routes.Assets.at("/public/images", "logo.png")">
public/partials目录中的任何静态html都可以在/assets/partials/someHtml.html上公开获得。所以严格地说,您不需要/partials/*文件路径,我知道,但是我想通过提供映射来缩短我的url。否则,我必须使用这个url:“assets/partials/welcome.html”而不是“partials/welcome.html”。只要再映射一次,我的URL就会变短。当我需要从JS部分访问这些应用程序时,这是有意义的,就像在一个应用程序中有两个应用程序(1.play one,2.JS one),还有路由,两个根。对于JSONE,我假设我已经在/public(或在资产中)-这是JS应用程序的根目录。我想知道为什么它不起作用。也许这对您来说已经很清楚了,但是如果您为Assets.at action定义了第二个映射,那么您需要在使用反向路由器时指定path参数。这是因为路径现在不明确。因此,你不能使用@routes.Assets.at(“stylesheets/main.css”),而必须使用@routes.Assets.at(“/public”,“stylesheets/main.css”)是的。我懂了。我最好使用一个路由定义,在url中多输入一个单词,而不是在每个资源url中多输入一个参数。这个解决方案给了我:
[MatchError:(public/css,bootstrap.min.css)(属于scala.Tuple2类)]
我相信我在这方面遇到了一个播放错误/怪癖(2.4.2和2.5.0)。如果conf文件夹中有两个路由文件,则两个文件中的资源路由的多样性应相同。这意味着,如果一个文件中有多个资源路由,那么另一个文件也应该有多个资源路由。否则,play会在html模板中使用反向路由时产生误导性错误。我在主应用程序routes
文件中有两条资产路由,在test.routes
中有一条。然后,我收到一个参数版本的@routes.Assets.at()
的“参数不足”错误,另一个参数版本的“参数过多”错误。
<script src="/assets/javascripts/jquery.js"></script>
GET /javascripts/*file controllers.Assets.at(path="/public/javascripts", file)
GET /images/*file controllers.Assets.at(path="/public/images", file)
<script src="@routes.Assets.at("/public/javascripts", "jquery.js")"></script>
<image src="@routes.Assets.at("/public/images", "logo.png")">