2014-09-13 23 views
0

我已經測試了一齣戲2.3.4應用程序,並在控制檯它抱怨如下:無法找到發揮斯卡拉favicon.ico的問題

! @6jg7imio5 - Internal server error, for (GET) [/favicon.ico] -> 

play.api.Application$$anon$1: Execution exception[[NoSuchElementException: key not found: favicon.ico]] 
    at play.api.Application$class.handleError(Application.scala:296) ~[play_2.10-2.3.0.jar:2.3.0] 
    at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.10-2.3.0.jar:2.3.0] 
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$14$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:205) [play_2.10-2.3.0.jar:2.3.0] 
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$14$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:202) [play_2.10-2.3.0.jar:2.3.0] 
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library.jar:na] 
Caused by: java.util.NoSuchElementException: key not found: favicon.ico 
    at scala.collection.MapLike$class.default(MapLike.scala:228) ~[scala-library.jar:na] 
    at scala.collection.AbstractMap.default(Map.scala:58) ~[scala-library.jar:na] 
    at scala.collection.MapLike$class.apply(MapLike.scala:141) ~[scala-library.jar:na] 
    at scala.collection.AbstractMap.apply(Map.scala:58) ~[scala-library.jar:na] 
    at controllers.Application$$anonfun$list$1$$anonfun$apply$7$$anonfun$apply$8.apply(Application.scala:68) ~[classes/:2.3.0] 

然後,我找遍了所有的源代碼,並可以」找到任何地方使用favicon.ico。它在某個庫中使用嗎?

我用在光滑的圖書館。圖書館配置如下:

libraryDependencies ++= Seq(
    "com.typesafe.play" %% "play-slick" % "0.7.0", 
    "org.slf4j" % "slf4j-nop" % "1.6.4", 
    "joda-time" % "joda-time" % "2.3", 
    "org.joda" % "joda-convert" % "1.5", 
    "com.github.tototoshi" %% "slick-joda-mapper" % "1.1.0", 
    jdbc, 
    anorm 
) 

UPDATE:

[email protected] ~/activator-1.2.10/abb_web_1/public $ tree 
. 
├── images 
│   └── favicon.ico 
├── javascripts 
│   ├── forms.js 
│   └── jquery.js 
└── stylesheets 
    ├── bootstrap.min.css 
    └── main.css 

在路由文件,我說每biesior的答覆如下。但它仍然抱怨同樣的錯誤。我把favicon.ico放在錯誤的地方?

GET  /favicon.ico    controllers.Assets.at(path="/public", file="favicon.ico") 
+0

,如果你把它放在子文件夾,你的路線應該是'...在(PATH =「/公衆」,文件=「圖像/的favicon.ico」)' – biesior 2014-09-13 15:25:42

+0

我變了,但仍然有問題。我檢查了由play模板創建的默認路由器,favicon.ico沒有這樣的路由器,那麼爲什麼它適用於其他應用程序? – 2014-09-15 02:37:10

+0

我不知道,推這個項目,即github所以我們可以看到它整個 – biesior 2014-09-15 09:41:33

回答

7

每個瀏覽器在訪問地址時都會查找favicon.ico。只是,文件添加到您public文件夾並添加路由:

GET /favicon.ico controllers.Assets.at(path="/public", file="favicon.ico") 

提示:它也可以png文件 - 在默認新PlayJava或PlayScala項目也可以在public/images/favicon.png

+0

我相應地改變,但仍然失敗,我更新了我原來的消息,請幫助審查。 – 2014-09-13 13:45:45

0

找到你應該表示路徑爲controllers.Assets.at(path =「/ public/images」,file =「favicon.ico」)

0

您是否錯過了HTML中的鏈接?

<link rel="shortcut icon" href="@routes.Assets.at("images/favicon.ico")">