Fecshop 设置https后,图片打不开的问题, 2.产品图片不显示,只是显示一个黑白淡图的处理(评论区)

技术分享 · Fecmall · 于 6年前 发布 · 3960 次阅读

有的fecshop开发者,安装fecshop后,为了安全,安装了证书,进而网站的访问由http:// 换成了 https:// ,完成后,发现图片访问不了。

原因:https:// 下访问的网站,是加密的,对于网站内出现的任何http://的url ,都不会加载,这是浏览器针对https网站的一种安全机制,因此,你的图片域名,也需要加入ssl,让其可以通过https://的方式访问图片,图片才会在https下加载。

题外话:你会发现一些第三方的js,会通过判断加载相应的js,譬如:

ma.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'trace.xxxx.com/fec_trace.js';

通过判断,来决定加载。

您需要进行如下的配置

1.确认您的图片配置部分,@common\config\fecshop_local_services\Image.php

'appfront' => [
'basedir' => '@appimage/appfront',
'basedomain' => '//img3.fecshoptest.com',
],

//img3.fecshoptest.com 的前面,一定不要加http:https:,因为,如果不加,浏览器会根据当前的环境,决定加载http,还是加载https的图片,也就是如果域名是https,图片就会加载https的url,如果当前的是http,那么就会加载http的图片,上面设置好后,我们可以看到前端的图片都没有前面的http:部分,譬如:

2.您的所有的图片域名,都需要添加证书

如果您使用的第三方的图片云服务器,他们一般都会支持https和http,您就不需要设置了

2.1nginx,对图片域名都需要设置证书,也就是可以https的方式访问图片地址

2.2nginx要设置http也可以访问,也就是图片地址url,http和https两种方式都可以访问(这样更保险一些,保证图片在各种场景下都能访问)

譬如我的配置:

server {
    listen     80  ;
	listen 443 ssl http2;
    server_name img.appfront.fancyecommerce.com;
	root  /www/web/develop/fecshop/appimage/appfront;
	
	...
}

监听了2个端口,保证http和https都可以访问图片url

共收到 5 条回复
Terry#16年前 0 个赞

图片设置,切记http 和https,两种方式都可以访问,设置完成后,可以自己测试一下。

wubuyun#26年前 0 个赞

进行如下的配置图片访问不了

Terry#36年前 0 个赞

这种情况,代表图片出来了,只是你后台编辑的图片,在使用的时候可能没有被引用到。

1.不显示图片的产品,在后台查看一下是否有图片,如果后台没有图,需要上传图片,对于没有图片的产品,fecshop会默认给予一个这样的图:

2:

如果后台存在图片,而前台显示上面的截图,而不显示后台设置的图片, 这块的处理,有2中方法:

2.1设置产品图片,后台重新编辑保存产品。

2.2批量处理:这个在fecshop安装的时候已经有介绍:

http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-about-config.html

10.2.3、产品图片部分可以看到如下的内容:

按照文档的内容操作一下,就可以解决。

wubuyun#46年前 0 个赞

后台重新编辑保存产品, 图片出来了..

Terry#56年前 0 个赞

@wubuyun #4楼 OK, 你可以按照第二部,把cache中的图片全部清空,批量处理。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics