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/*文件路由
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |