【发布时间】:2018-09-02 20:01:46
【问题描述】:
我需要像这样重写我的应用程序的 URL:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
我使用 Traefik 作为反向代理和 Docker Compose。
这是我在 Docker 中的原始配置:
application:
build: ./domain.app
volumes:
- ./domain.app/dist:/app
networks:
- net
labels:
- "traefik.frontend.rule=Host:domain.me"
- "traefik.port=8081"
- "traefik.backend=domain.me"
- "traefik.frontend.entryPoints=http,https"
使用该配置:
https://domain.me 正在工作
https://domain.me/anything 返回 404
如何解决这个重写规则?
【问题讨论】:
-
你如何提供你的 vue.js 文件?使用 Nginx、Apache 还是其他?
-
我正在为那些使用 node-static 的人提供服务。
static --host-address 0.0.0.0 -p 8081 --gzip -
如果这是用于生产,我强烈建议您使用适当的静态文件服务器,例如 nginx 或 apache。然后,您可以按照链接中的说明进行配置更改:router.vuejs.org/guide/essentials/…。如果没有,您可以按照 vue.js 指南中的说明实现自己的 http 服务器:router.vuejs.org/guide/essentials/…
-
您不想为此使用 Traefik 的原因是 traefik 不知道您的服务器上有哪些文件。 Traefik 只是将请求中继到您的服务器,然后确定文件是否存在(200)或不存在(404)。如果您将 traefik 配置为重写每个未知路由,则必须编写一个 PathPrefixStripRegex 排除服务器上存在的每个文件,而您真的不想这样做,更不用说更新它了。
-
好吧,我想我会像以前一样放弃 Traefik 转而支持 Nginx!谢谢。
标签: traefik