Twitter bootstrap 播放框架中的引导图标

Twitter bootstrap 播放框架中的引导图标,twitter-bootstrap,playframework,playframework-2.0,Twitter Bootstrap,Playframework,Playframework 2.0,我想在游戏框架中使用 因此,当我使用时,bootstrap会在“assets/img/…”中查找图标。此行为与冲突,因为图像位于“assets/images/…”中 因此,我试图通过为GET请求定义一个额外的路由来重新映射到“资产/img”: 但这样做,我会在我调用的每一个其他公共资产上得到一个编译错误“没有足够的参数用于:(path:String,file:String)play.api.mvc.Call.Unspecified value参数文件中的方法” 我做错了什么?如果使用的是无引导,

我想在游戏框架中使用

因此,当我使用
时,bootstrap会在“assets/img/…”中查找图标。此行为与冲突,因为图像位于“assets/images/…”中

因此,我试图通过为GET请求定义一个额外的路由来重新映射到“资产/img”:

但这样做,我会在我调用的每一个其他公共资产上得到一个编译错误“没有足够的参数用于:(path:String,file:String)play.api.mvc.Call.Unspecified value参数文件中的方法”


我做错了什么?

如果使用的是无引导,请更改variables.LESS中的路径:

// Sprite icons path
// -------------------------
@iconSpritePath:          "assets/images/techcore/glyphicons-halflings.png";

实际上,描述我的问题帮助我在这里搜索;)。。。stackoverflow已经有了答案。希望我的问题至少能给这个问题带来更多的相关性,我自己来回答

据我所知,我必须为每个文件定义静态路由,然后对其他资产的请求不会被“错误路由”

我只是加了一句

# 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)
到我的路由,所以我不需要以特殊的方式修改任何框架


多亏了你的建议实际上。。。人们经常混淆一些初始结构,因为必须完全相同。对于
app
文件夹,这是正确的。Play为
控制器
模型
使用了一些隐式导入,并且毫无理由地更改它会带来更多的麻烦。无论如何,
public
文件夹不会在任何默认操作/控制器/视图中呈现,因此其布局可以完全自定义

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

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


它将允许您只需简单地解压包即可更新到新版本,也将避免您的头痛。

我认为您正在尝试修复应用程序配置中的CSS路径问题。你不能修复CSS吗?我不想用twitters的股票CSS来修复这个问题,只要play为我提供了一种在路线上重新映射路径的温和方式。我理解这一理念,但Bootstrap的变量旨在。。。变量::-)你不喜欢一个名为“public/template”的目录,里面有所有的引导程序(js+css+img)吗?是的,你的解决方案是正确的。我只是被建议将整个目录从/assets/bootstrap/img移动到可访问的位置,并将css从/assets/bootstrap/css移动到可访问的位置(无需编辑播放路线),好吧,我希望不要接触到整个LESS和CoffeeScript,因为这对我来说是全新的。虽然我了解它的优点,但我仍然喜欢我的web应用程序中的一些东西是静态的;)。。。好的,让我们看看如果我能学会怎么做,我会尝试一下。蒂齐亚诺在问题评论中也提到了这一点。我完全同意你的看法,这可能是最好的、正确的方法。不知道,为什么我一开始没有这样做;)。。。我接受这个答案,并很好地描述了为什么这是最好的方法。这个解决方案对我来说很有效,但一开始我遇到了一个问题,因为我将引导映像放在其他资产之后:记住它们必须按照Jürgen建议的顺序!正是我需要的。
# 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)