मैं हर्को पर एक फ़ेविकॉन कैसे तैनात करूं?


11

मेरे पास Hello worldअपने हर्को ऐप के लिए निम्न कोड है। मेरे प्रोजेक्ट के रूट फोल्डर में भी, मैं ए favicon.ico

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

html = '''
<!doctype html>
<html>
  <head>
    <link rel="shortcut icon" href="https://webmasters.stackexchange.com/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="https://webmasters.stackexchange.com/favicon.ico">
    
  3. मेरे फ्लास्क ऐप में, मेरे पास निम्नलिखित 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बस पृष्ठ पर (कम से कम क्रोम पर) फ़ेविकॉन प्रदर्शित करता है।


2

मैंने अपने फ़ोल्डर में अपने रेल एप्लिकेशन में अपनी favicon.ico छवि डाली public/। फिर मैंने हरोकू को तैनात किया और नया दिखाने से पहले मुझे अपना ब्राउज़र कैश साफ़ करना पड़ा।


1

यहाँ मेरा उपयोग है:

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

मेरा मानना ​​है कि "शॉर्टकट" इंटरनेट एक्सप्लोरर के लिए होना चाहिए (हालांकि आईई आमतौर पर फ़ेविकॉन की परवाह किए बिना जांच करेगा)।

हालाँकि, ऐसा लगता है कि आइकन गलत स्थान पर है। आपको इसके माध्यम से एक्सेस करने में सक्षम होना चाहिए yoursite.com/favicon.ico। आप Google Chrome में पृष्ठ स्रोत देखकर भी जांच कर सकते हैं और /favicon.icoएक रेखांकित लिंक होगा - उस स्थान को खोलने के लिए जिसे आपने निर्दिष्ट किया है।

अद्यतन: क्या आपके पास कोई .htaccessफ़ाइल है? आपने जो कहा है, उससे ऐसा लगता है कि आपको एप्लिकेशन को बायपास करने के लिए मौजूदा फ़ाइलों के लिए एक अपवाद बनाने की आवश्यकता है। यदि आप अपाचे का उपयोग कर रहे हैं तो आप कुछ इस तरह का उपयोग करेंगे:

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

आपके द्वारा उपयोग किए जा रहे प्लेटफ़ॉर्म के लिए एक समतुल्य होना चाहिए।


क्या यह फ्लास्क पर है? मुझे लगता है कि फ्लास्क को भेजे गए प्रत्येक URL GET के लिए एक हैंडलर स्क्रिप्ट की तलाश है। मुझे अभी भी 404 मिलते हैं।
किट

@ क्षमा करें, ईमानदार होने के लिए मुझे हरकु या फ्लास्क के बारे में कुछ भी पता नहीं है। मैंने बस यह मान लिया कि ऐप ने ठीक काम किया लेकिन कुछ गलत HTML आउटपुट किए।
असंतुष्टगीत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.