// 脚本引入示例
<script src="/s/lib/jquery.js"></script>
<script src="/s/vue/main.js" type="module"></script>
<link rel="modulepreload" href="/s/vue/ts/App.js">
原因
其实控制台的报错已经说明了原因:
页面引入脚本时,需要的是
script
类型;而服务器返回后,浏览器识别到的类型是plain
。
二者不一致,所有无法正常生效。
解决:给所有js请求,主动设置Content-Type为js
@app.middleware("response")
async def set_header(request: Request, response):
if request.url.endswith(".js"):
response.headers["Content-Type"] = "application/javascript; charset=utf-8"