【发布时间】:2017-07-28 13:11:57
【问题描述】:
服务聚合物 es6-bundle、es5-bundle 和非捆绑版本有条件有哪些选项?
如果可能的话,首选选项是 nginx,所以基本上如何检测 HTTP2 以及用户代理是否有良好的正则表达式来检测 es6
【问题讨论】:
标签: polymer-2.x serving
服务聚合物 es6-bundle、es5-bundle 和非捆绑版本有条件有哪些选项?
如果可能的话,首选选项是 nginx,所以基本上如何检测 HTTP2 以及用户代理是否有良好的正则表达式来检测 es6
【问题讨论】:
标签: polymer-2.x serving
我找到了下一个解决方案:
在后端你应该像这样定义地图:
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 或任何其他 feature-detect-* 库
然后你应该设置相应的cookie并调用window.location.reload(true)。
在我的例子中,我有一个基于 cms 的单独登录页面,因此浏览器检测在其上进行处理,当用户点击应用程序时,相应的 cookie 已经设置。
【讨论】: