1.0.5 • Published 7 years ago
fis-postprocessor-https-smarty v1.0.5
fis-postprocessor-https-smarty
标准后处理器插件
作用
在fis进行了异构语言编译以及标准化处理后,进行对 smarty 模板中的静态资源引用作处理,以支持https请求模式下的访问。
- 将
<img src="{{imgurl}}">
这样的模板标记替换成<img src="{{imgurl|url_trans}}">
,不仅支持img
标签,对所有具有src
属性的标签都起作用,url_trans
这个filter
是个smarty
自定义的modifier
。 - 将
<img src="http://www.baidu.com/favicon.ico">
这样的静态资源引用替换成<img src="{{'http://www.baidu.com/favicon.ico'|url_trans}}">
- 将
<img src="http://www.baidu.com/{{imgname}}">
这样的混合拼接的src
值,替换成<img src="{{('http://www.baidu.com/' + imgname) |url_trans }}">
- 将内联css中的
background-image
的url
为静态文本值的替换成可以同时支持http/https访问的url. - 将内联css中的
background-image
的url
为模板变量混合拼接的url
添加filter
。 - 将
{{data|json_encode}}
替换为{{(data|json_encode)|url_trans}}
- 将
{{file_get_contents('path')}}
替换为{{(file_get_contents(path))|url_trans}}
安装
npm -g install fis-postprocessor-https-smarty
配置
需要在smarty plugin中先定义好依赖的
modifier
,用于url的动态转换 还需要一个http/https 的域名映射表,如:var domainmap = {'http://www.baidu.com': 'https://www.baidu.com'}
这样的object定义。
fis.config.merge({
...
modules: {
...
postprocessor: {
tpl: 'https-smarty,...', // 配置tpl文件的标准化处理插件
},
...
},
settings: {
postprocessor: {
...
'https-smarty': { // 设置fis-postprocessor-https-swig
domainmap: require('./domain-map.js').domainmap, // 域名映射表
left_delimiter: '{{', // 模板左标记
right_delimiter: '}}' // 模板右标记
filter: 'url_trans', // smarty modifier
ignore: [ // 需要忽略处理的文件列表
'/client/static/js/domain-map.js'
]
},
...
}
},
...
});