2012-07-24 4 views
2

개발 서버에서 web.py 응용 프로그램을 실행할 때 favicon에 대한 404 오류를 어떻게 제거합니까?web.py 개발 서버 - favicon.ico - 404를 찾을 수 없음

"HTTP/1.1 GET /" - 200 OK 
"HTTP/1.1 GET /favicon.ico" - 404 Not Found 

이 오류를 제거하는 방법에 대한 모든 정보는 Apache 구성에서 리소스 경로를 지정하는 것과 관련이 있습니다. 이것은 분명히 개발 서버 사용 사례에 도움이되지 않습니다. URL 튜플에 정적 리소스를 지정하는 방법이 있습니까? web.py 애플리케이션에서 문서 루트를 정의 할 수 있습니까?

답변

3

web.py API 문서는
'303 SEE OTHER'응답을 생성하고 브라우저를 다른 위치로 리디렉션하는 'web.seeother()'함수를 참조합니다.
(http://webpy.org/docs/0.3/api#web.application 참조)

이것은 html 파일에서 헤더 변경이 필요없는 서버 측 솔루션입니다. 서버가 실제로 html 파일을 다루지 않는 경우 특히 유용합니다.

솔루션 :

# Define API Routes 
urls = (
    '/', 'index', 
    '/favicon.ico', 'icon' 
) 

가 포함 된 (웹 액세스 가능) 정적 디렉토리를 만듭니다

이 경로를 처리하는 기본 /favicon.ico에서 URL 경로를지도하고 새로운 클래스를 생성 파비콘.여기

# Process favicon.ico requests 
class icon: 
    def GET(self): raise web.seeother("/static/favicon.ico") 

는 요청을 보여주는 내 서버 로그입니다 : ICO는

이 파일을 처리하는 새로운 클래스를 생성

<ip#> - [18/Oct/2013 21:54:54] "HTTP/1.1 GET /favicon.ico" - 303 See Other 
<ip#> - [18/Oct/2013 21:54:54] "HTTP/1.1 GET /static/favicon.ico" - 200 
<ip#> - [18/Oct/2013 22:03:02] "HTTP/1.1 GET /favicon.ico" - 303 See Other 
<ip#> - [18/Oct/2013 22:03:03] "HTTP/1.1 GET /static/favicon.ico" - 304 Not Modified 
0

브라우저는 웹 사이트의 루트 디렉토리에서 /favicon.ico 파일을 자동으로 찾습니다. 이 오류는 'favicon.ico'파일이 존재하지 않는다는 것을 의미합니다. 단순히 아이콘 파일을 만들거나 많은 favicon 제작자 사이트 중 하나에서 다운로드하여 웹 사이트의 루트 웹 디렉토리 (public_html 등)에 배치하십시오. 더 나은 솔루션에 대한

, 파비콘 파일에 특정 링크를 포함하는 웹 페이지 'HTML 편집 : 당신의 /static 경로에서만 작동하는 http://www.w3.org/2005/10/howto-favicon

+0

나는 IE의 일부 버전에 rel ='요구되는 것보다 어딘가에 기억하는 것 "바로 가기 아이콘"-하지만 다시 찾을 수없는 것 같습니다. –

+1

favicon이 있습니다. 응용 프로그램 코드 옆의 프로젝트 루트에 있습니다. 나는/static과 같은 프로젝트의 여러 위치로 옮겨 보려고했지만 오류는 여전히 발생합니다. 문제는 web.py 개발 서버가 어디에서 찾을 수 있는지 알지 못하기 때문에 어디서 볼 것인지를 어떻게 알지 못한다는 것입니다. – tponthieux

1

한계 web.py 때문에

<html> 
<head> 
    <link rel="icon" type="image/png" href="http://example.com/myicon.png"> 
    ... 

참조하여 정적 데이터의 경우 실제로는 dev 서버로 favicon을 올바르게 제공하는 방법이 없습니다. 가장 좋은 방법은 (404) 로그를 제거하는 것은 매핑에 URL 핸들러를 추가하는 것입니다 :

urls = ("/favicon.ico", "dummy") 

dummy 핸들러

는 빈 200 응답을 전달합니다.

4

Like Ryan Griggs가 제안했지만 /static/favicon.ico를 href로 사용합니다.

<html> 
<head> 
    <link rel="icon" type="image/png" href="/static/favicon.ico"> 
    ... 

web.py dev에 서버가 static/ 디렉토리에있는 파일에 대한 모든 /static/ URL을 매핑합니다.