현재 대부분의 브라우저는 사이트 루트에 favicon.ico
을 자동으로 찾습니다. 따라서 고객은 GET /favicon.ico
http-requests을 처리해야합니다. 이 작업을 수행하는 가장 쉬운 방법은 사용하는 것입니다 spray-routing
의 getFromResource
:
import spray.routing.SimpleRoutingApp
import spray.http._
import MediaTypes._
object Main extends App with SimpleRoutingApp {
implicit val system = ActorSystem("my-system")
startServer(interface = "localhost", port = 8080) {
path("favicon.ico") {
getFromResource("favicon.ico", `image/x-icon`) // will look for the file inside your `resources` folder
}
}
}
이미 일부 처리 배우가 (그리고 spray-routing
를 사용하지 않는) 경우, 당신이 뭔가를 반환, 당신의 배우 내부에 직접 GET /favicon.ico
를 처리해야합니다 like :
def receive = {
case HttpRequest(GET, Uri.Path("/favicon.ico"), _, _, _) =>
sender ! HttpResponse(entity = HttpEntity(`image/x-icon`,
HttpData(new File("favicon.ico")))) //will take it from a file in application folder, you may also pass any array of byte instead of File
...
}
두 번째 옵션에 대한 자세한 내용은 another answer을 참조하십시오.
P. - 당신이 favicon.ico
파일을 귀찮게하고 싶지 않은 경우는 두 경우 모두 단지 StatusCodes.NotFound
를 반환 할 수 있습니다
에 대한
sender ! HttpResponse(NotFound)
을 라우팅.
W3C's preferred method (링크를 웹 페이지에 넣음)은 브라우저의 검색 순서에 따라 달라지며 브라우저 간 호환성을 보장하지 않습니다 (siteData-36 참조). 대부분의 브라우저는 html 페이지가 없어도 사이트의 루트를 먼저 확인하는 것으로 보입니다.
[경로 ("favicon.ico") {getFromResource ("favicon.ico")}] (http://spray.io/documentation/1.1-SNAPSHOT/)와 같은 해당 경로를 추가해야 할 수도 있습니다. 스프레이 라우팅/파일 및 리소스 지시문/getFromResource /) – dk14
@ dk14 논리적으로 보입니다. 시도해 보겠습니다. 귀하의 의견은 대답이 될만한 가치가 있습니까? – samthebest