2017-09-22 47 views
0

我有一个很难想出办法来的一个Vuejs前端Web App和我的服务器写在节点之间的差异,当我的应用程序完成后,我可以在我的服务器上传到同一个域在我的web应用程序的生命? API可以调用我的服务器吗?让我说我的miwebsite.com?Vuejs前端Web应用程序如何与我的服务器位于同一个主机/域中?

我想要做的是一个单页面应用程序aka(PWA),它有两条Vuejs处理的路线,我假设的主页是(miwebsite.com)和(miwebsite.com/admin),数据获取使api调用到我的服务器,但我又对服务器端渲染和客户端渲染等所有这些术语感到困惑,我知道服务器端渲染是你有不同的页面,例如你有一个路由与表示指向一个关于页面这得到渲染是正确的?客户端渲染是您在第一次调用时下载所有内容,然后稍后通过api调用用用户操作更新页面。

但例如之间的区别是什么,看起来像这样api.mywebsite.com和mywebsite.com域?他们住在同一个域名/主机上吗?

回答

0

最后,那就是确定如何对一个给定的HTTP请求回复您的Web服务器。 要使Vue部分起作用,您的Web服务器必须提供一个HTML页面,该页面引用包含您的应用程序及其潜在依赖项(此例中为Vue)的JavaScript包。 因此,您应该配置您的网络服务器的mywebsite.com虚拟主机以对这两个//admin路径的HTML页面进行响应。 对于大多数默认配置,它足以使其指向包含index.html旁边的依赖(例如scripts/app.js,也许scripts/vue.js)的目录。

对于API调用的工作,常见的有两种模式:

  • 鸟巢在同一个域(mywebsite.com/api)一个单独的路径上的API。在这种情况下,您应该将您的网络服务器配置为转发将所有请求路由到/api路径到单独的后端服务。在Apache中,你可以使用mod_proxy,在Nginx中是mod_http_proxy。
  • 将API托管在单独的域上。 (api.mywebsite.com)。在这种情况下,您还可以配置一个反向代理,但对于整个虚拟主机。

注意:以上假设您的后端生活在与您的Web服务器分开的服务中。如果你想使用例如。 mod_php,您将需要使用一些URL重写(Apache中的mod_rewrite)来实现相同。

+0

我怎样才能让一个_virtual HOST_是由Vuejs提出的要求作出回应?假设我的express服务器和vuejs应用程序都在不同的端口上运行?表达可以在端口3000和vuej 8080 – Ahsath

+0

运行(这本来是有帮助你了,你说用特快达阵) 快速谷歌发现[表达-HTTP代理模块(HTTPS://www.npmjs。 com/package/express-http-proxy),你可以像这样使用,'app.use('/ api,proxy('localhost:3000'));'对于第二种情况,你可以使用'filter'选项,看看'req.headers ['Host'] ===“api.mywebsite.com”' – Botje

相关问题