Play Framework [2.4.x] 从子模块调用 favicon.ico 文件

Play Framework [2.4.x] calling a favicon.ico file from a submodule

这是这个问题的后续:

当浏览器需要将其视为网站 ROOT 目录中的一个文件时,如何处理一个图标,而您不能将其显示为位于图像目录中的典型 link .

如果我尝试按如下方式添加它:

  <link rel="shortcut icon" href="@controllers.submodule.routes.Assets.versioned(file="lib/submodule/images/favicon.ico")">

然后事情编译并且 link 是可点击的(如果我查看源代码那里有一个文件)但是浏览器拒绝以可视方式部署 favicon

如果我听从其他建议并尝试修改路由文件:

GET     /favicon.ico  controllers.submodule.Assets.versioned(path="/public/images", file="favicon.ico")

我收到这个可爱的错误:

play.sbt.PlayExceptions$CompilationException: Compilation error[method versioned is defined twice

或者如果我听从这个建议:(can't find favicon.ico issue in play scala)

我得到这个编译错误:

play.sbt.PlayExceptions$CompilationException: Compilation error[too many arguments for method versioned: (file: controllers.Assets.Asset)play.api.mvc.Call]

只是为了 shiggles 和作为一种学习练习如何提供以下文件:

http://mysexysite.com/favicon.ico

1 来自:MAIN 模块的资产

2 来自:SUBMODULE模块资产

而不是重新路由到较低的目录。

IBM 错误 :)

显然它确实是这样工作的:

  <link rel="shortcut icon" href="@controllers.submodule.routes.Assets.versioned(file="lib/submodule/images/favicon.ico")">

根据https://groups.google.com/forum/#!topic/play-framework/_I3hrKo-28A

但是,如果您使用 Safari 作为参考浏览器,您实际上很少会看到网站图标(除非您单击地址栏),因为它不会显示在实际的选项卡上。

呃:(