cocos creator加载图片需要一个.jpg后缀, 而微信头像的url是没有后缀的. 可以通过架一个nginx反向代理的方式解决
nginx配置如下:
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#proxy_temp_path /usr/local/nginx/proxy_temp;
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=image:20m inactive=1d max_size=100m;
upstream qlogo{
server wx.qlogo.cn:80;
keepalive 60;
}
server {
listen 18000;
#more_set_headers 'Access-Control-Allow-Orign: *';
#more_set_headers 'Access-Control-Allow-Headers: X-Requested-With';
location /{
proxy_cache image;
proxy_cache_methods GET HEAD;
proxy_cache_min_uses 1;
proxy_cache_valid 200 302 5m;
proxy_cache_valid 404 1m;
proxy_cache_valid any 1m;
proxy_cache_key "$host:$server_port$uri$is_args$args";
rewrite ^(.*)\.jpg$ $1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://qlogo;
}
}
然后客户端加载的url后面加上.jpg后缀, 比如原来的头像是
http://wx.qlogo.cn/mmopen/ajNVdqHZLLCwxaK8h699qf2PWelTDQ3AaYZK6BbehjkS7PSKxzQA6UAo7GSFXk038sibzRdha1HAStplmw/0
改成
http://nginx服务器地址/mmopen/ajNVdqHZLLCwxaK8h699qf2PWelTDQ3AaYZK6BbehjkS7PSKxzQA6UAo7GSFXk038sibzRdha1HAStplmw/0.jpg
nginx服务器会吧地址再转变为http://wx.qlogo.cn/mmopen/ajNVdqHZLLCwxaK8h699qf2PWelTDQ3AaYZK6BbehjkS7PSKxzQA6UAo7GSFXk038sibzRdha1HAStplmw/0
反向代理访问出去