在 Vue 中支持 2 个基数 URL
Support 2 base URL's in Vue
是否可以支持 2 base URL,/test/app 和 /app路由器? http 请求还必须使用更新的路径进行 API 调用。
也许可以在 vue 路由器中使用别名来做到这一点。但是这并没有解决vue资源的API调用问题。这意味着我必须为每个页面创建 2 个路径。
首先,请注意,Vue-Resource has been deprecated from official recommendation status 因为他们不认为 Ajax 是一项需要与 Vue 生态系统深度集成的功能。
现在,谈谈更大的问题。听起来您正在尝试根据您所处的环境(即本地开发与生产)使用不同的 url。最简单的方法是转到定义 Vue-Resource 根目录的文件 url 并添加以下内容:
var isProduction = process.env.NODE_ENV === 'production'
var rootUrl = (isProduction) ? 'http://production.domain/api' : 'http://localhost:8080/api'
Vue.http.options.root = rootUrl;
此代码主要测试您是否在生产环境中,如果是,则将生产域 api 分配给变量,否则分配本地开发域 api.
[编辑]
我想当然地认为您会使用为您设置的 Vue-CLI。如果你使用 NPM 启动你的 Vue 服务器,你可能 运行 像 npm run dev
这样的命令,它在你的 package.json
:
中引用了这一行
{
// ...
"scripts": {
"dev": "node build/dev-server.js",
// ...
}
您可以将 "dev" 行更改为如下内容:
{
// ...
"scripts": {
"dev": "NODE_ENV=dev node build/dev-server.js",
// ...
}
这将使用您的 Node 脚本创建 NODE_ENV 变量,您现在应该可以在 Vue 上下文中使用它。
是否可以支持 2 base URL,/test/app 和 /app路由器? http 请求还必须使用更新的路径进行 API 调用。
也许可以在 vue 路由器中使用别名来做到这一点。但是这并没有解决vue资源的API调用问题。这意味着我必须为每个页面创建 2 个路径。
首先,请注意,Vue-Resource has been deprecated from official recommendation status 因为他们不认为 Ajax 是一项需要与 Vue 生态系统深度集成的功能。
现在,谈谈更大的问题。听起来您正在尝试根据您所处的环境(即本地开发与生产)使用不同的 url。最简单的方法是转到定义 Vue-Resource 根目录的文件 url 并添加以下内容:
var isProduction = process.env.NODE_ENV === 'production'
var rootUrl = (isProduction) ? 'http://production.domain/api' : 'http://localhost:8080/api'
Vue.http.options.root = rootUrl;
此代码主要测试您是否在生产环境中,如果是,则将生产域 api 分配给变量,否则分配本地开发域 api.
[编辑]
我想当然地认为您会使用为您设置的 Vue-CLI。如果你使用 NPM 启动你的 Vue 服务器,你可能 运行 像 npm run dev
这样的命令,它在你的 package.json
:
{
// ...
"scripts": {
"dev": "node build/dev-server.js",
// ...
}
您可以将 "dev" 行更改为如下内容:
{
// ...
"scripts": {
"dev": "NODE_ENV=dev node build/dev-server.js",
// ...
}
这将使用您的 Node 脚本创建 NODE_ENV 变量,您现在应该可以在 Vue 上下文中使用它。