स्टैटिक फाइल्स भेजने का एक और तरीका इस तरह से कैच-ऑल नियम का उपयोग करना है:
@app.route('/<path:path>')
def catch_all(path):
if not app.debug:
flask.abort(404)
try:
f = open(path)
except IOError, e:
flask.abort(404)
return
return f.read()
मैं इसका उपयोग विकासशील होने पर सेट-अप को कम करने की कोशिश करने के लिए करता हूं। मुझे http://flask.pocoo.org/snippets/57/ से आइडिया मिला
इसके अलावा, मैं अपने स्टैंडअलोन मशीन पर फ्लास्क का उपयोग कर विकसित कर रहा हूं लेकिन उत्पादन सर्वर में अपाचे के साथ तैनाती कर रहा हूं। मैं उपयोग करता हूं:
file_suffix_to_mimetype = {
'.css': 'text/css',
'.jpg': 'image/jpeg',
'.html': 'text/html',
'.ico': 'image/x-icon',
'.png': 'image/png',
'.js': 'application/javascript'
}
def static_file(path):
try:
f = open(path)
except IOError, e:
flask.abort(404)
return
root, ext = os.path.splitext(path)
if ext in file_suffix_to_mimetype:
return flask.Response(f.read(), mimetype=file_suffix_to_mimetype[ext])
return f.read()
[...]
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('-d', '--debug', dest='debug', default=False,
help='turn on Flask debugging', action='store_true')
options, args = parser.parse_args()
if options.debug:
app.debug = True
# set up flask to serve static content
app.add_url_rule('/<path:path>', 'static_file', static_file)
app.run()