我们目前正在使用prestashop 1.5.6.2,并通过第三方php函数将一个巨大的xml文件(14k行)导入到mysql中。一切都很好,直到在prestashop中的产品页面为止。但是在产品页面中,prestashop调用图像,如
<img src="http://www.domain.com/img/p/1/1/3/113-large_default.jpg" title="Product Name" alt="Product Name" id="bigpic" width="264" height="264">
我们期望
<img src="http://www.domain.com/img/p/113/113-large_default.jpg" title="Product Name" alt="Product Name" id="bigpic" width="264" height="264">
不幸地; Prestashop在第一个产品ID之间添加斜杠,例如;
/1/1/3/113-large_default.jpg
我不确定,但这是某种.htaccess重写问题。我们的.htaccess看起来像;
<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>
# Disable Multiviews
Options -Multiviews
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com.tr$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# AlphaImageLoader for IE and fancybox
RewriteCond %{HTTP_HOST} ^www.domain.com.tr$
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
RewriteCond %{HTTP_HOST} ^www.domain.com.trm$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# AlphaImageLoader for IE and fancybox
RewriteCond %{HTTP_HOST} ^www.domain.com.trm$
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
</IfModule>
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404
如果遇到任何问题,任何人都可以提供帮助吗?
没有重写问题,图像路径正确。
如果要使用自定义图像路径,请在product.tpl
中使用以下命令更改图像标签:
<img src="img/p/{$product->id}/{$product->id}-large_default.jpg">
摘自林俊仁的回答here
URL中的斜杠会更改相对URL的基数。所有你的 您内容中相对URL的链接现在将使用 不正确的基数。您可以使用绝对网址来解决此问题 (以
/
开头)或在页面标题中添加基数:
<base href="/" />