我有一个任务,在 google app engine 上用 python 后端(不是 flask)和 Vue.js 前端构建一个系统。 系统需要在谷歌应用引擎(谷歌云 SDK)上加载 vue.js 应用(一些基本的 hello world 应用)。
我已经构建了 python 和 yaml 端并将其加载到 GAE,还构建了 vue.js 端.. 但我在如何连接部件上停留了很长时间,以便 python/yaml 将在加载 url 时加载我的应用程序..
请帮助, 无论如何都要感谢! :)
最佳答案
严格来说,您的 Python 不会直接“加载您的应用”。
首先,冒着不必要解释的风险,这里有一个重要的概念,即代码驻留位置与代码执行位置。您的 VueJS 代码以静态文件的形式驻留在服务器上,但在客户端/浏览器中执行。
问:它是如何从服务器传到浏览器去执行的?
A:客户端必须向服务器发送请求才能提供。
问:什么会导致浏览器发送这个请求?
A:发送给它的其他代码中的指令,很可能是 <script>
HTML 中的标记。
因此,流程是这样的(根据未提供的详细信息,您可能会有所不同):
- 浏览器向服务器 (GAE) 发送 HTML 请求,例如主页
- 服务器(GAE)以 HTML 响应
- 此 HTML 可以由 Python 动态创建,也可以是静态文件。
- 此 HTML 包含指示浏览器请求更多文件的标记:图像、CSS、JS。
- 此 HTML 应包含
<script>
标记以请求您的 VueJS 代码。
- 浏览器接收 HTML 并处理它,包括
<script>
标记您的 VueJS 代码。 - 浏览器向服务器发送 VueJS 代码请求。
- 服务器 (GAE) 使用包含 VueJS 代码的静态文件进行响应。
- 浏览器接收包含 VueJS 代码的文件,运行它,您的 VueJS 现在已加载并运行!
- 当您的 VueJS 运行时,它可能会向服务器 (GAE) 发送 AJAX 请求以获取数据和/或更多代码。
您的 VueJS 代码必须驻留在服务器上的静态文件中。对于服务器(Python)来说,这个静态文件只是一个无意义的字节包(如果代码中存在语法错误,直到它在客户端执行时才会被发现)。
如何将这些静态文件放入 GAE 中,以便在浏览器请求时可以使用它们?您可能已经有了这个(对于 CSS、图像),但以防万一您还没有,请查看此链接:Server Static Files有关设置的详细信息。
关于python - 在 Google App Engine 上连接 python 后端和 vue.js 前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49843822/