Prestashop 打开友好URL时不显示预览图像

Prestashop 打开友好URL时不显示预览图像,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,在安装新的SSL证书并将PHP版本从5.x更改为7.1.28后,产品图像不再显示在前端,Chrome开发工具显示图像文件的404错误。 它们在后端产品目录下可见 这看起来像是缺少图像目录,例如/home default/,因为在HTML代码中,图像文件应该直接位于文档根目录上,这显然是错误的 当我关闭“友好URL”时,会显示图像。 到目前为止,我尝试的是: 已删除.htaccess,将友好URL切换为on以重新生成.htaccess 清空缓存并重新生成图像缩略图 切换回PHP5.4 将Allow

在安装新的SSL证书并将PHP版本从5.x更改为7.1.28后,产品图像不再显示在前端,Chrome开发工具显示图像文件的404错误。 它们在后端产品目录下可见

这看起来像是缺少图像目录,例如/home default/,因为在HTML代码中,图像文件应该直接位于文档根目录上,这显然是错误的

当我关闭“友好URL”时,会显示图像。 到目前为止,我尝试的是:

  • 已删除.htaccess,将友好URL切换为on以重新生成.htaccess
  • 清空缓存并重新生成图像缩略图
  • 切换回PHP5.4
  • 将AllowOverride All添加到vhost配置中
  • 没什么帮助。在服务器上是另一个PrestaShop安装,运行相同的PrestaShop版本1.6.18,也在PHP7.1.28下,在那里“友好的URL”工作良好


    我必须说,我不知道该在哪里处理这个问题。

    在花了一些时间与@Harry一起调试他的配置后,我们找到了解决方案,我相信这将帮助许多其他人

    @Harry正在使用Nginx+Apache的组合

  • 我们检查了他的PrestaShop.htaccess文件,确保重写引擎已打开并正确触发(例如,页面已正确重写,只有图像未被重写)-一切正常
  • 我们试图为自己编写一个基本的重写规则来重定向一个.jpg,但没有成功,显示了一个nginx404页面
  • 我们得出的结论是,Nginx正在处理所有静态内容(JS、CSS、JPEG等),而不是将其转发给Apache
  • 解决方案

    我们从Nginx配置中删除了此部分:

    location ~ ^/(.*\.(ac3|avi|bmp|bz2|cue|dat|doc|docx|dts|eot|exe|flv|gz|htm|html|img|iso|jpeg|mkv|mp3|mp4|mpeg|mpg|ogg|ppt|pptx|qt|rar|rm|swf|tar|tgz|ttf|txt|wav|xls|xlsx|zip))$ {
                    try_files $uri @fallback;
    }
    
    作为一般建议,我建议不要使用Apache+Nginx,PrestaShop已经可以很好地与Nginx+PHP-FPM配合使用,您将获得很好的性能


    如果选择此解决方案,请不要忘记直接在Nginx()中设置PrestaShop重写规则。

    Hi@Harry,您使用的是Nginx还是Apache?您能从web浏览器控制台发布“网络”选项卡的屏幕截图吗?Hi@Bruno,Apache,使用nginx作为反向代理。以下是屏幕截图:打开友好url:关闭友好url:您的PrestaShop重写规则是在Nginx还是Apache中定义的?以下是Nginx的一个示例:它还包括图像URL的规则。此外,我建议放弃Apache,只需使用FastCGI使用Nginx+PHP-fpm7.3.x即可获得最佳性能。我希望这有帮助,如果没有,请尝试在StackOverflow PrestaShop聊天室ping我。@BrunoLeveque我们正在使用Apache,重写工作正常,唯一的问题是图像。我们使用Apache7.1.28作为FPM模块,使用op_缓存和nginx来服务器静态内容,这提供了最佳性能。