2

有条件的服务聚合物 es6-bundle、es5-bundle 和非捆绑版本有哪些选项?

如果可能的话,首选选项是 nginx,所以基本上如何检测 HTTP2 以及用户代理是否有良好的正则表达式来检测 es6

4

1 回答 1

2

我找到了下一个解决方案:

在后端,您应该像这样定义地图:

map $cookie_build $assets_suffix {
    ""    "";
    "no"             "";
    "es6-bundled"    "build/es6-bundled/";
    "es6-unbundled"  "build/es6-unbundled/";
    "es5-bundled"    "build/es5-bundled/";
}

和聚合物的资产位置定义了这样的东西

location /polymer-app/ {
    alias /app/public/frontend/$assets_suffix;
    try_files $uri $uri/ /polymer-app/index.html;
}

因此,默认情况下,nginx 服务于开发构建,并且当为构建版本定义了 cookie 时,它​​会为应用程序的适当构建提供服务。

在客户端

您应该检测浏览器功能,例如使用此要点 https://gist.github.com/DaBs/89ccc2ffd1d435efdacff05248514f38或任何其他功能检测-* 库然后您应该设置相应的 cookie 并调用window.location.reload(true)

就我而言,我有一个基于 cms 的单独登录页面,因此浏览器检测在其上进行处理,当用户点击应用程序时,相应的 cookie 已经设置。

于 2017-08-22T07:50:25.993 回答