Интеграция на Docker Desktop с WSL

Имам следното Hello world код за приложението ми Heroku. Също така в основната папка на моя проект имам 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)

Когато преглеждам приложението си, не виждам favicon. Също така, когато проверя heroku logs, Получавам следното 404 линия:

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

Току-що го намерих тук: http://flask.pocoo.org/docs/patterns/favicon/

Различавах се малко от него и ето какво направих:

  1. В моето дърво съхранявам иконата като static/images/favicon.ico
  2. В HTML имам следния ред в <head>:

    <link rel='shortcut icon' href='/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).

Сложих си favicon.ico изображение в моя public/ папка в приложението ми rails. След това се разположих в heroku и трябваше да изчистя кеша на браузъра си, преди да се появи новият.

Ето какво използвам:

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

Вярвам, че "пряк път" трябва да е там за Internet Explorer (въпреки че IE обикновено проверява за значок, независимо).

Звучи обаче, че иконата е на грешното място. Трябва да имате достъп до него чрез yoursite.com/favicon.ico. Можете също да проверите, като прегледате източника на страницата в Google Chrome и /favicon.ico ще бъде подчертана връзка - щракнете върху нея, за да отворите местоположението, което сте посочили.

АКТУАЛИЗИРАНЕ: Имате ли .htaccess файл? От казаното от вас звучи, че трябва да направите изключение за съществуващи файлове, за да заобиколите приложението. Ако използвате Apache, ще използвате нещо подобно:

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

Трябва да има еквивалент за платформата, която използвате.

  • Това на Flask ли е? Мисля, че Flask търси скрипт за манипулатор за всеки URL, изпратен до него. Все още получавам 404.
  • @Kit Съжалявам, честно казано не знам нищо за Heroku или Flask. Просто предположих, че приложението работи добре, но изведе някакъв неправилен HTML.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?