有人知道如何使用Flask提供Angular单页应用程序的服务吗?
我在提供默认路由'/'时遇到了麻烦,这个路由应该加载index.html和相关组件。以下是我的Flask函数:
@app.route('/')
def hello_world():
return send_file('templates/dist/templates/index.html')
当我访问localhost:5000时,会出现一个空的Chrome浏览器窗口:并且在Chrome的开发控制台中会出现以下错误:这是应该在Chrome中显示的内容:我认为这些错误是因为Flask不知道在哪里找到支持文件以呈现Angular组件。按照Angular的快速入门教程中的指示,我的index.html大部分为空,app-root作为HTML body元素的占位符。
<body>
<app-root></app-root>
<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script></body>
有人知道如何告诉Flask让Angular渲染页面吗?
.js
结尾的每个路径,您的static_proxy
应该为send_from_directory
调用添加mimetype="application/javascript"
关键字参数。否则,您将得到一个空页面和许多错误:“Failed to load module script: The server responded with a non-JavaScript MIME type of ""。根据HTML规范,模块脚本要求严格的MIME类型检查。” - Robin De Schepper如果路径以“.js”结尾:return send_from_directory('./', path, mimetype="application/javascript")
- Robin De Schepper