Docker darbvirsmas integrācija ar WSL

Man ir šādi Hello world kods manai Heroku lietotnei. Arī mana projekta saknes mapē man ir 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)

Pārlūkojot savu lietotni, es neredzu a favicon. Arī tad, kad pārbaudu heroku logs, Es saņemu sekojošo 404 līnija:

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

Es tikko atradu to šeit: http://flask.pocoo.org/docs/patterns/favicon/

Es nedaudz mainījos no tā, un es to darīju:

  1. Savā kokā es ikonu glabāju kā static/images/favicon.ico
  2. HTML failā man ir šāda rinda <head>:

    <link rel='shortcut icon' href='/favicon.ico'> 
  3. Manā lietotnē Flask man ir pieejams šāds URL apstrādātājs /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') 

    Kāpēc image/png? Jo, ja es izmantoju image/vnd.microsoft.icon, tad es pārlūkoju http://myapp.heroku.com/favicon.ico, Es saņemu lejupielādes dialoglodziņu. image/png vienkārši parāda lapā favicon (vismaz pārlūkā Chrome).

Es ieliku savu favicon.ico attēls manā public/ mapi manas sliedes lietotnē. Tad es izvietoju heroku un man vajadzēja notīrīt pārlūka kešatmiņu, pirms parādījās jaunais.

Lūk, ko es izmantoju:

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

Es uzskatu, ka "saīsnei" vajadzētu būt pārlūkprogrammai Internet Explorer (lai gan IE neatkarīgi no tā parasti pārbaudīs favicon).

Tomēr izklausās, ka ikona atrodas nepareizā vietā. Jums vajadzētu būt iespējai tai piekļūt, izmantojot yoursite.com/favicon.ico. Varat arī pārbaudīt, apskatot lapas avotu pārlūkā Google Chrome un /favicon.ico būs pasvītrota saite - noklikšķiniet uz tā, lai atvērtu norādīto atrašanās vietu.

ATJAUNINĀT: Vai jums ir .htaccess failu? No tā, ko esat teicis, izklausās, ka, lai apietu lietotni, jums jāizdara izņēmums esošajiem failiem. Ja izmantojat Apache, izmantojiet kaut ko līdzīgu:

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

Jūsu izmantotajai platformai jābūt līdzvērtīgai.

  • Vai tas ir uz kolbas? Es domāju, ka Flask katram apstrādātājam URL meklē apstrādātāja skriptu. Man joprojām ir 404.
  • @Kit Atvainojiet, godīgi sakot, es neko nezinu ne par Heroku, ne par kolbu. Es tikko pieņēmu, ka lietotne darbojas labi, bet izlika nepareizu HTML.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?