1

我正在使用 Vue、Vuetify 并且我的数据库位于 postgreSQL 中,并带有来自 postgREST ( https://postgrest.org/en/stable/ ) 的 API 后端。当使用本地主机和哈希模式时,本地一切都很好。使用以下语法时,我可以在新选项卡中打开组件产品:

const route = this.$router.resolve({ path: `/product/${value.id}` }) (1)
window.open(route.href, '_blank')                                    (2)

但是,在带有 postgREST-server 的生产环境中,在新选项卡中打开时,我得到了错误的 url:

http:server_name/api/#/product/1                                     (3)

当我从上面的 url (3) 中删除/api并像这样重写它时:

http:server_name/#/product                                           (4)

我得到正确的页面。
是否可以编写一个可能的nginx规则以确保 http:server_name/api/#/product/1 自动重写为正确的 url http:server_name/#/product?或如何更改vue-router或 vue 配置文件以在生产中获得与 locahost 相同的行为?

4

1 回答 1

0

一种可能的客户端解决方法是/api在生产模式下去除前缀:

const url = process.env.NODE_ENV === 'production'
            ? route.href.replace('/api', '')
            : route.href
window.open(url, '_blank')
于 2021-04-19T05:44:59.557 回答