Heroku에서 즐겨 찾기 아이콘을 어떻게 배치합니까?


11

Hello worldHeroku 앱에 대한 다음 코드가 있습니다. 또한 내 프로젝트의 루트 폴더에는 favicon.ico.

import os
from flask import Flask
app = Flask(__name__)

html = '''
<!doctype html>
<html>
  <head>
    <link rel="shortcut icon" href="/webmasters//favicon.ico">
    <title>Hello world!</title>
  </head>
  <body>
    <p>Hello world!</p>
  </body>
</html>
'''

@app.route('/')
def index():
    return html

if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

앱을 탐색 할 때가 표시되지 않습니다 favicon. 또한 확인 heroku logs하면 다음 404줄 이 나타납니다 .

2012-02-14T05:23:29+00:00 app[web.1]: <ip.ad.dr.es> - - [14/Feb/2012 05:23:29] "GET /favicon.ico HTTP/1.1" 404 -

답변:


6

방금 여기에서 찾았습니다 : http://flask.pocoo.org/docs/patterns/favicon/

나는 그것과 약간 달랐으며 여기에 내가 한 일이있다.

  1. 내 나무에서 아이콘을 다음과 같이 저장합니다. static/images/favicon.ico
  2. HTML에서는 다음과 같은 줄이 있습니다 <head>.

    <link rel="shortcut icon" href="/webmasters//favicon.ico">
    
  3. Flask 앱에는 다음 URL 핸들러가 있습니다. /favicon.ico

    @app.route('/favicon.ico')
    def favicon():
        return send_from_directory(os.path.join(app.root_path, 'static', 'images'),
                                   'favicon.ico', mimetype='image/png')
    

    image/png? 내가 사용하는 경우 때문에 image/vnd.microsoft.icon, 그때가 찾아 http://myapp.heroku.com/favicon.ico, 나는 다운로드 대화 상자를 얻을. image/png페이지에 즐겨 찾기 아이콘 (최소한 Chrome) 만 표시합니다.


2

레일 앱의 폴더에 favicon.ico 이미지를 넣었습니다 public/. 그런 다음 heroku에 배포하고 새 브라우저 캐시가 나타나기 전에 브라우저 캐시를 비워야했습니다.


1

내가 사용하는 것은 다음과 같습니다.

<link rel="shortcut icon" type="image/x-icon" href="/webmasters//favicon.ico">

Internet Explorer에는 "바로 가기"가 있어야한다고 생각합니다 (IE는 일반적으로 즐겨 찾기 아이콘을 확인하지만).

그러나 아이콘이 잘못된 위치에있는 것처럼 들립니다. 을 통해 액세스 할 수 있어야합니다 yoursite.com/favicon.ico. Chrome에서 페이지 소스를보고 확인할 /favicon.ico수도 있으며 밑줄이 그어진 링크가 될 것입니다. 지정한 위치를 열려면 클릭하십시오.

업데이트 : .htaccess파일이 있습니까? 당신이 말한대로, 기존 파일이 앱을 우회하기 위해 예외를 만들어야하는 것처럼 들립니다. Apache를 사용하는 경우 다음과 같은 것을 사용하십시오.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule your_rule_here [L]

사용중인 플랫폼에 해당하는 것이 있어야합니다.


플라스크에 있습니까? Flask는 모든 URL GET에 대해 처리기 스크립트를 찾습니다. 나는 여전히 404를 얻는다.
키트

@Kit 죄송합니다. 솔직히 말하면 Heroku 또는 Flask에 대해 아무것도 몰라요. 방금 응용 프로그램이 제대로 작동한다고 가정했지만 잘못된 HTML이 출력되었습니다.
DisgruntledGoat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.