Pjax 的 Request Header 中 Accept 字段为空造成的问题

2017-03-04 15:24:47 +08:00
 heiybb

博客为 typecho ,使用 @chakhsu 大佬写的 Pingshu 主题 我在 function 文件中添加了如下函数

function is_webp(){
    return strstr($_SERVER['HTTP_ACCEPT'],'image/webp');
}

后来发现这个函数和主题自带的 pjax 有冲突

图一为 Pjax 请求 图二为正常请求 因为 Pjax 的 Request Header 中 Accept 字段为空, is_webp()函数无法正确响应,导致其余依赖函数都失效了。

如 parseContent 函数,无法正确将文章内的图片地址替换为 CDN 的地址

function parseContent($obj){
    $options = Typecho_Widget::widget('Widget_Options');
    if(!empty($options->src_add) && !empty($options->cdn_add)){
        $obj->content = str_ireplace($options->src_add,$options->cdn_add,$obj->content);
    }
    if(is_webp()){
        $new_content = preg_replace('/(img\.heiybb\.com\/)+(.*)(.jpg|.jpeg|.png|.gif)+/i', '$1$2$3?imageView2/0/format/webp/q/85', $obj->content);
        echo trim($new_content);
    }
    else{
        echo trim($obj->content);
    }
}

现在大概想法是如何能让 Pjax 请求附带上历史 header 呢或者直接继续使用历史 header 对网页这方面不熟,恳请各位大佬指点

916 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX