我有一个具有以下目录结构的 Java Play 2.5 元素:
- 元素目录
- 应用
- Assets
- 图片
- javascript
- 样式表
- 模特
- 观点
- 控制者
- 公开
- 图片
- javascript
- 样式表
- 目标
这或多或少直接取自 anatomy of a Play project .
但是,我无法将 Assets (CSS 和图像)从 public
目录链接到 main.scala.html
。
我们在 routes
文件中有以下路由:
GET /assets/*file controllers.Assets.at(path="/public", file)
然后我们在 main.scala.html
<link rel="stylesheet" href="@Assets.at("stylesheets/font-awesome.min.css")">
这给出了编译错误:没有足够的方法参数
编译器似乎没有看到我们声明方法的第一个参数是固定的(routes
文件中的path="/public"
)。
基于 my research in the Play documentation ,当声明了修复 path
参数的多个路由时会发生此错误,但对我来说绝对不是这种情况。我只有一个调用 Assets Controller 的路由。
如果我像这样用两个参数显式调用 at:
<link rel="stylesheet" href="@Assets.at("/public", "stylesheets/style.css")">
然后元素运行成功,但是当我在浏览器中加载主页时,我的 CSS 都不存在。有没有人遇到过类似的问题?
最佳答案
我通过像这样设置我的路线找到了一个修复:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
并像这样调用 Assets :
<img src="@routes.Assets.versioned("images/home_page.jpg")" class="img-responsive" alt="My Image">
关于java - Play 2.5 元素中损坏的 CSS 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855472/