【问题标题】:mod_proxy_html causes minor differences in CSSmod_proxy_html 导致 CSS 的细微差别
【发布时间】:2020-12-13 21:53:28
【问题描述】:

我正在使用 mod_proxy_html 在 Apache 上公开 Redmine。

CSS 存在细微差异,这会导致反向代理后网站中的字体大小显得稍大。

所有资源都在禁用缓存的网络选项卡中正确加载(200 OK),我尝试在 Meld 中并排比较 HTML 和 CSS:除了少量替换(例如 @ 987654322@,' → ',删除某些标签中的尾部斜杠,当然还有相应资源的 URL 重写)。

使用检查工具分析“错误”元素时,CSS 属性看起来相同,但“布局”选项卡会显示差异(例如,line-height: 18px 用于一个站点上的 <td> 元素,line-height: normal 在另一个站点上)。

我怀疑这可能是由于 JQuery/Javascript 与样式交互造成的。 我不知道以下细节是否重要,但在这两个站点中,在控制台选项卡中我都会收到调试警告“未设置样式内容的闪烁”,但事实并非如此,因为这是永久性错误样式的内容。

这是我的 Apache 配置:

SSLProxyEngine on
ProxyPass /redmine/ https://mysite.domain/
ProxyPassReverse /redmine/ https://mysite.domain/
ProxyHTMLEnable On
RequestHeader unset Accept-Encoding
ProxyHTMLCharsetOut *
ProxyHTMLURLMap / /redmine/

关于如何进一步调试/解决此问题的任何建议?

【问题讨论】:

    标签: javascript css apache mod-proxy mod-proxy-html


    【解决方案1】:

    我弄错了,问题是由于 mod_proxy 删除了 <!DOCTYPE html> 标签(在我的并排比较中没有注意到它)。由于我不明白的原因,这足以影响 CSS 的呈现。

    感谢这个 SO 问题:Missing Doctype HTML Deployment using apache mod_proxy

    我不确定这个问题是否值得保留,现在我会留下它,以防其他人对同样的问题感到困惑并倾向于责怪 mod_proxy_html。 我会让社区决定,如果您认为应该删除该问题,请投反对票。

    【讨论】:

    • (仅供参考)“由于我不明白的原因,这足以影响 CSS 的呈现。” - 它使浏览器切换到“怪癖模式” ,他们明确地模仿以前的浏览器版本用来制作的渲染错误。 developer.mozilla.org/en-US/docs/Web/HTML/… 这是为了保持旧网站的向后兼容性而发明的。
    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多