Play 2.5 Project

时间:2017-05-08 19:08:00

标签: java html css twitter-bootstrap playframework

我有一个Java Play 2.5项目,其目录结构如下:

  • 项目-DIR
    • 应用
    • 资产
      • 图像
      • Javascript角
      • 样式表
    • 模型
    • 视图
    • 控制器
    • 公共
      • 图像
      • Javascript角
      • 样式表

这或多或少直接来自anatomy of a Play project

但是,我无法将public目录中的资源(CSS和图片)链接到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")">

这会产生编译错误:

方法的参数不够

似乎编译器没有看到我们声明方法的第一个参数被修复(path="/public"文件中的routes

基于my research in the Play documentation,当声明修复path参数的多个路由时会发生此错误,但对我来说绝对不是这样。我只有一个调用Assets控制器的路由。

如果我明确地使用这两个参数调用:

<link rel="stylesheet" href="@Assets.at("/public", "stylesheets/style.css")">

然后项目成功运行,但是当我在浏览器中加载主页时,我的CSS都没有。有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:0)

通过设置我的路线,我找到了解决办法:

GET  /assets/*file  controllers.Assets.versioned(path="/public", file: Asset)

并像这样调用资产:

<img src="@routes.Assets.versioned("images/home_page.jpg")" class="img-responsive" alt="My Image">

来源:https://www.playframework.com/documentation/2.5.x/AssetsOverview#reverse-routing-and-fingerprinting-for-public-assets