nginx url跳转,结果无效,怎么解决?
我有个地址,必须带#引用远程的svg图片,因为只有这样才能在html里直接用use标签引用过来。域名不一样存在跨域问题,不让调用,于是用nginx做跳转且url地址不变。
比如真正的文件路径是:
https://www.aaa.com/icons/homes.svg
远程上的地址是:
https://cdn.aaa.com/icons/homes.svg
这个是homes.svg的文件
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="homes" viewBox="0 0 1024 1024">
<path d="M956.527709 843.236073..."></path>
</symbol>
..........
...more...
..........
<symbol id="star" viewBox="0 0 1024 1024">
<path d="M956.527709 843.236073..."></path>
</symbol>
</svg>
我在 https://www.aaa.com/ 页面中想用这个方式来写,注意看路径部分
<svg viewBox="0 0 1024 1024"><use xlink:href="/res/icon/homes"></use></svg>
实际上是访问的这个路径
<svg viewBox="0 0 1024 1024"><use xlink:href="/res/icon/homes.svg#homes"></use></svg>
于是我就这样写了配置,正则我测试过,没错
location /res/icons/{
rewrite /res/icons/(.*?)$ /svg/$1.svg\#$1 break;
proxy_pass https://cdn.aaa.com;
}
- 结果没有效果,应该怎么办?
- 如果是认为#后面都是注释,有没有什么办法,不让nginx当做是注释?就像转义字符一样。
- 或者不这么写,有什么办法吗? 貌似伪静态不行,但不确定。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
资源后面的#号不会随着请求代入的,也就是你nginx上面不会看到#号以及后面的内容的,根本不需要匹配
已找到解决办法。