Docker Desktop Integration med WSL

Jag har följande Hello world kod för min Heroku-app. Även i mitt projekts rotmapp har jag en favicon.ico.

import os from flask import Flask app = Flask(__name__) html = '''  <html> <head> <link rel='shortcut icon' href='/favicon.ico'> <title>Hello world!</title> </head> <body> 

Hello world!

</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)

När jag bläddrar till min app ser jag inte a favicon. Också när jag kollar heroku logs, Jag får följande 404 linje:

2012-02-14T05:23:29+00:00 app[web.1]:  - - [14/Feb/2012 05:23:29] 'GET /favicon.ico HTTP/1.1' 404 - 

Jag hittade det just här: http://flask.pocoo.org/docs/patterns/favicon/

Jag varierade lite från det och här är vad jag gjorde:

  1. I mitt träd lagrar jag ikonen som static/images/favicon.ico
  2. I HTML har jag följande rad i <head>:

    <link rel='shortcut icon' href='/favicon.ico'> 
  3. I min Flask-app har jag följande URL-hanterare för /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') 

    Varför image/png? För om jag använder image/vnd.microsoft.icon, sedan bläddrar jag till http://myapp.heroku.com/favicon.ico, Jag får en nedladdningsdialogruta. image/png visar bara favicon på sidan (åtminstone i Chrome).

Jag lägger min favicon.ico bild i min public/ mappen i min rails-app. Sedan distribuerade jag till heroku och var tvungen att rensa webbläsarens cache innan den nya dyker upp.

Här är vad jag använder:

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

Jag tror att "genvägen" borde finnas där för Internet Explorer (även om IE vanligtvis kommer att söka efter en favicon oavsett).

Det låter dock som om ikonen är på fel plats. Du bör kunna komma åt den via yoursite.com/favicon.ico. Du kan också kontrollera genom att visa sidkällan i Google Chrome och /favicon.ico kommer att vara en understruken länk - klicka på den för att öppna den plats du har angett.

UPPDATERING: Har du en .htaccess fil? Från vad du har sagt låter det som om du måste göra ett undantag för befintliga filer för att kringgå appen. Om du använder Apache skulle du använda något så här:

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

Det borde finnas en motsvarighet för plattformen du använder.

  • Är det här på Flask? Jag tror att Flask letar efter ett hanterarskript för varje URL som skickas till den. Jag får fortfarande 404-tal.
  • @Kit Tyvärr, för att vara ärlig vet jag ingenting om Heroku eller Flask. Jag antog bara att appen fungerade bra men skickade ut felaktig HTML.

fungerat för dig: Charles Robertson | Vill du kontakta oss?

Användbar information