如何配置polymer serve,使其在目录请求时返回index.html?
关于polymer serve配置目录请求返回index.html的解决方案
当然可以实现目录URL请求自动返回index.html的需求,而且完全不需要深入到Express中间件层去手动配置——polymer-cli(包括其底层依赖的polyserve)已经为我们提供了现成的配置方式,简单几步就能搞定。
方法一:通过命令行参数快速配置
启动polymer serve时,直接添加--entrypoint参数指定你的欢迎文件即可:
polymer serve --entrypoint index.html
这样当你访问某个目录路径(比如http://localhost:8080/my-subdir/)时,如果该目录下存在index.html,服务器会自动返回这个文件;如果是单页应用(SPA)场景,需要处理前端路由的虚拟路径,还可以搭配--fallback参数,确保所有匹配不到静态资源的请求都返回根目录的index.html:
polymer serve --entrypoint index.html --fallback index.html
方法二:通过polymer.json配置文件持久化设置
如果不想每次启动都敲命令行参数,可以在项目根目录的polymer.json文件中添加相关配置,让设置永久生效:
{ "entrypoint": "index.html", "fallback": "index.html" }
entrypoint:指定应用的主入口文件,服务器会优先用它处理目录请求;fallback:当请求的资源不存在时(比如前端路由的虚拟路径),会返回这个文件,完美适配SPA场景。
关于是否需要深入Express中间件的问题
完全没必要!polymer-cli已经封装了polyserve的能力,而polyserve本身已经对Express的中间件做了适配,提供了更上层的、更贴合Polymer项目的配置选项。上面的两种方法已经能覆盖绝大多数场景,不需要去修改底层的Express中间件代码。
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

