2

我正在处理的站点使用压缩的 SVG 图像作为 dotnetnuke 站点中按钮的背景图像。DNN 版本是 07.00.00 (1586)。CSS看起来像这样:

a.primaryButton {
     background: url(data:image/svg+xml;base64,[data]);
}

注意:我在这里使用了 [data] 而不是实际的压缩文件。

当我在 Host -> Host Settings -> Advanced Settings -> Client Resource Management 中启用复合文件并选中 Minify CSS 和 Minify JS 时,上述背景图像更改为:

a.primaryButton {
     background: url(https://mydevsite.com/DependencyHandler.axd/image/svg+xml;base64,[data]);
}

一旦发生这种情况,SVG 背景图像将不再出现。我最初的想法是尝试压缩已经压缩的 SVG 时出现问题。如果我将 url 复制并粘贴到浏览器中,我会收到 400 无效请求响应。为什么在 DNN 中启用复合文件后 SVG 背景图会失效?

先谢谢了。

data:更新:在考虑了更多之后,在上面的代码中替换 DNN 复合文件处理程序确实没有意义,https://mydevsite.com/DependencyHandler.axd因此后续问题是,如何防止 DNN 复合文件功能尝试压缩 SVG在 css 代码中用作背景图像的文件?

4

1 回答 1

1

DotNetNuke 的客户端资源管理框架是管理 CSS 文件并处理它们以确保通过其DependencyHandler.axd端点提供资源的组件。

但是,该组件中存在一个关于数据 URI 的错误,就像您在此处使用的那样,不应该通过 Dependency Handler 提供该错误。该错误已在 DNN 7.0.5 中修复

于 2013-05-30T12:18:00.240 回答