Play框架中的Bootstrap glyphicons

Jür*_*nig 10 playframework twitter-bootstrap playframework-2.0

我想在play框架中使用Bootstraps glyphicons

所以当我使用时<i class="icon-search" />,bootstrap正在寻找"assets/img/..."中的图标.此行为与播放应用程序解剖结构冲突,因为图像位于"assets/images/..."中.

所以我尝试通过为"assets/img"定义GET请求的额外路由来重新映射:

# Map static resources from the /public folder to the /assets URL path
GET     /assets/img/*file           controllers.Assets.at(path="/public/images", file)
GET     /assets/*file               controllers.Assets.at(path="/public", file)
Run Code Online (Sandbox Code Playgroud)

但是这样做,我得到一个编译错误"没有足够的方法参数:(路径:字符串,文件:字符串)play.api.mvc.Call.未指定的值参数文件."在我正在调用的每个其他公共资产上.

我究竟做错了什么?

Jür*_*nig 9

实际上描述我的问题帮助我在这里搜索它;)... stackoverflow已经有了答案.希望我的问题是至少能够解决这个问题,我自己也会回答这个问题.

根据如何使用Twitter Bootstrap 2与play framework 2.x我必须为每个glyphicons文件定义静态路由,然后对其他资产的请求不会"错误路由".

我只是补充道

# Map Bootstrap images
GET     /assets/img/glyphicons-halflings.png            controllers.Assets.at(path="/public", file="/images/glyphicons-halflings.png")
GET       /assets/img/glyphicons-halflings-white.png      controllers.Assets.at(path="/public", file="/images/glyphicons-halflings-white.png")

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)
Run Code Online (Sandbox Code Playgroud)

到我的路线,所以我不需要以特殊的方式修改任何框架.

无论如何,感谢您的建议


bie*_*ior 4

其实...人们经常混淆一些初始结构与它必须完全相同。如果是app文件夹,这是正确的。Play 使用了一些隐式导入controllersmodels,无缘无故地改变它会带来比其价值更多的麻烦。无论如何,public文件夹不会在任何默认操作/控制器/视图中呈现,因此它的布局可以完全自定义。

(注意:好吧,我必须承认,我没有读过这个文档,他们写道你应该像这样组织你的静态资产以保持所有 Play 应用程序的一致性。但这不是真的!:))

一般规则是:不要破坏放置在目录中的现成可用的框架、插件等public。举个例子,虽然你可以通过一些额外的路线很容易地修改引导程序,但如果你尝试使用 Aloha 编辑器进行相同的操作,你可能会永久损坏它。如果您想保持干净的结构 - 创建一个示例public/frameworks/bootstrap-current文件夹并从原作者那里提取包。

它将允许您通过简单的解压包来更新到新版本,也将避免您的头痛。