首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Playframework2中,如何服务多个资产目录?

问在Playframework2中,如何服务多个资产目录?
EN

Stack Overflow用户
提问于 2015-03-08 14:07:11
回答 2查看 253关注 0票数 5

有两个资产目录,一个是/ui/dist,另一个是/public。我试着写这样的路线:

代码语言:javascript
复制
GET            /assets/*file                        controllers.Assets.at(path="/public", file)
GET     /ui/*file               controllers.Assets.at(path="/ui/dist", file)

但是在编译时会抛出一个错误:

代码语言:javascript
复制
[error] Unspecified value parameter file.
[error]         <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">

有没有人想办法解决这个问题..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-09 02:01:55

我发现关键是将另一个参数传递给routes.Assets.at,下面是来自资产文件的

代码语言:javascript
复制
GET  /javascripts/*file        Assets.at("public/javascripts", file)
GET  /images/*file             Assets.at("public/images", file)

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

代码语言:javascript
复制
<script src="@routes.Assets.at("public/javascripts", "jquery.js")"></script>
<image src="@routes.Assets.at("public/images", "logo.png")">
票数 4
EN

Stack Overflow用户

发布于 2015-03-08 14:22:47

尝试为每个路由器创建一个单独的路由器对象:

代码语言:javascript
复制
package controllers

object PublicAssets extends controllers.AssetsBuilder
object UiDistAssets extends controllers.AssetsBuilder

然后在你的路线上:

代码语言:javascript
复制
GET     /assets/*file   controllers.PublicAssets.at(path="/public", file)
GET     /ui/*file       controllers.UiDistAssets.at(path="/ui/dist", file)

我认为在您的尝试中发生的情况是,反向路由器正在为您的公共路由生成一个对象,然后为覆盖第一个路由的ui路由生成一个同名的对象(如果有人知道得更精确,请更正我)。解决方案应该是将您的资产类别命名不同,因此生成的反向路由也有不同的名称(或者,交替地称它们为相同的东西,但将它们放在不同的包中)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28927351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档