gpt4 book ai didi

Python Flask,如何为静态文件(js)设置 'Content-Type'?

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:09 25 4
gpt4 key购买 nike

对于我的 Flask 应用程序,我使用“windows-1251”编码。为了绘制模板,我按如下方式设置“Content-Type”:

from flask.helpers import make_response

def render_tmpl_dummy():
response = make_response("Some Russian text here")
response.headers['Content-Type'] = 'text/html; charset=windows-1251'
return response

这里一切都很好。但我的静态 js 文件也在“windows-1251”中。那么,有什么方法可以设置 'Content-Type=application/x-javascript; charset=windows-1251' 用于所有静态文件?(PS:我不想提前手动转成UTF-8,这种方法不适合我)

最佳答案

这就是我能够为所有文件提供自定义 extension 的方式在静态文件夹中自定义 MIME type在开发服务器上:

if __name__ == '__main__':

CUSTOM_FILE_EXTENSION = '.jsonl'
CUSTOM_MIME_TYPE = 'application/jsonl+json'

@flask_app.route(flask_app.static_url_path + '/' + '<path:path>' + CUSTOM_FILE_EXTENSION)
def jsonl_mime_type(path):
return flask.send_from_directory(
directory=flask_app.static_folder,
path=path + CUSTOM_FILE_EXTENSION,
mimetype=CUSTOM_MIME_TYPE
)

实际上,我只是重新发明了 Flask 静态 Web 服务器,它显然由一个 single call 组成。在 Flask 构造函数中添加 add_url_rule():

        self.add_url_rule(
f"{self.static_url_path}/<path:filename>",
endpoint="static",
host=static_host,
view_func=lambda **kw: self_ref().send_static_file(**kw),
)

我遇到了所有这些麻烦,所以开发服务器的行为更像生产,其中 Apache 有一个 gentler设置 MIME 类型的方法。

关于Python Flask,如何为静态文件(js)设置 'Content-Type'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com