当前位置: 首页 > 面试题库 >

播放Framework @ routes.Assets.at编译错误

堵鸿光
2023-03-14
问题内容

我正在使用Play 2.4.0,并且一直在尝试遵循主页上的教程:https:
//playframework.com/,适用于Play 2.3,并解决了一些有关Ebean ORM中的更改的问题从2.3版到2.4版,我遇到了以下错误:

Compilation error

value at is not a member of controllers.ReverseAssets

我的index.scala.html

@(message: String)

@main("Welcome to Play") {

    <script type='text/javascript' src="@routes.Assets.at("javascripts/index.js")"></script>

    <form action="@routes.Application.addPerson()" method="post">
        <input type="text" name="name" />
        <button>Add Person</button>
    </form>

    <ul id="persons">
    </ul>
}

而我的routes文件:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET         /                    controllers.Application.index()

POST        /person              controllers.Application.addPerson()

GET         /persons             controllers.Application.getPersons()

# Map static resources from the /public folder to the /assets URL path
GET         /assets/*file        controllers.Assets.versioned(path="/public", file: Asset)

我有相同的示例可以正常使用Play 2.3.9

在2.4.0的文档中,我看不到任何与使用公共资产有关的内容:https
:
//www.playframework.com/documentation/2.4.0/Assets

所以…任何帮助将不胜感激。


问题答案:

好了,总结一下解决方案:Play让您以两种不同的方式服务资产。sbt-web引入了老式和新的指纹方法。无论哪种情况,请确保在视图文件中使用正确的调用:

指纹资产

建议使用这种方式来提供资产。指纹资产使用积极的缓存策略。您可以在此处阅读有关此主题的更多信息:https
:
//playframework.com/documentation/2.4.x/Assets

路由配置:

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

确保的类型file显示为Asset

调用视图:

@routes.Assets.versioned("an_asset")

老式资产

这基本上是引入sbt-web之前使用的方法。

路由配置:

GET     /assets/*file               controllers.Assets.at(path="/public", file)

调用视图:

@routes.Assets.at("an_asset")


 类似资料:
  • 代码 说明 102 视频列表为空 103 无效的视频列表 108 列表模式视频信息加载失败 109 视频信息加载失败 110 视频审核中 111 用户流量已用尽 112 用户账号被锁 114 视频被屏蔽或删除 115 视频信息错误 116 无视频文件 205 当前域名不允许播放 207 授权播放验证未通过 304 测速失败 305 切换清晰度失败 306 播放中播放失败

  • 我使用activator创建了一个新的Play Framework项目,,然后选择了模板,创建该项目时没有任何错误。 在IntelliJ Project的面板上,它不会显示所有文件(主要是带有代码的文件)。只有一小部分。 build.sbt文件看起来充满了编译错误(几乎所有行都有红色下划线)。 以下是build.sbt文件 编辑2----------------------------------

  • 问题内容: 我想创建2个可以启动和停止背景音频的设备。 这是我的代码: 当我单击时,可以正常工作,可以播放音频。 但是,当我单击时,会出现错误,如果再次单击,将不会再有声音。 这是错误: 我的程序有什么错误? 问题答案: 此SSCCE在这里是“无效结果”,因为音频无例外地重新启动(尝试至少3次)。

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu

  • 当我退出我的应用程序时,这个folloeing错误已经产生。