无法加载子页面中的图像

时间:2012-05-25 作者:Carlo

我添加了一个。htaccess文件到我正在处理的wordpress网站,以显示漂亮的URL而不是页面ID。

的内容。htaccess是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
它工作得很好,但在我的每一个子页面中,它都不会显示图像。使用Firebug,我看到图像的路径是正确的(例如:徽标的路径与其他页面中的路径相同),但它给出了错误“加载给定URL失败”。

图像的src是:wp-content/themes//文件jpg。我注意到放置一个绝对url,例如http://mysite.com/wp-content/.../file.jpg 确实解决了问题。

我应该只使用绝对URL还是在htaccess中可以做些什么?

2 个回复
最合适的回答,由SO网友:MathSmath 整理而成

您的问题与htaccess无关。这是因为你在使用相对路径,而你应该使用绝对路径。(Here\'s an explanation of the difference)

引用主题中的任何资产(假设主题有一个“images”子目录)的最佳方法可能是执行以下操作:

<?php echo get_bloginfo(\'template_url\') ?>/images/your_image.jpg
第一部分回显整个url,直到主题根。因此,您总是获得一个绝对URL,并且不必硬编码“/wp内容/主题/任何内容”。一些WP安装不使用“WP content”作为内容目录的名称,因此这种做法将使您的主题更加灵活和可移植。

Update in response to comment:

出现这个问题是因为您启用了相当长的永久链接,而不是因为您更改了htaccess文件。诚然,您确实需要编辑htaccess启用相当长的永久链接,但请相信,这一htaccess更改只是更大问题的偶然结果。

在启用permalinks之前,所有页面URI都是相对于域根的。意思是你所有的页面都是“yourdomain.com/?p=something”。在这种情况下,您的相对图像路径有效,因为它们总是相对于根路径。

启用了相当长的永久链接后,所有内容都与当前所在的路径相关。因此,如果你不在主页上,任何相关URL都会被破坏。

以示例图像的相对url为例:“images/my\\u image.jpg”。在主页(“www.yourdomain.com/”)上,您的浏览器将在“www.yourdomain.com/images/my\\u image.jpg”上查找此图像。但如果你在“www.yourdomain.com/about”这样的内部页面上,会发生什么呢?您的浏览器将在其相对路径中查找此图像,即“www.yourdomain.com/about/images/my\\u image.jpg”。显然,这不是正确的路径,图像(正确地)无法加载。

SO网友:user1337

尝试使图像引用从/

他们在主页上工作,因为wp-content 是正确的路径。但当你更深入的时候/wp-content

结束

相关推荐

Mass .htaccess URL Forwarding

我正在将一个站点从MovableType迁移到WordPress。该网站包含大约3500条帖子,当我将信息上传到新版本的网站时,链接已经被修改。旧站点链接(请注意,类别名称和节点编号不是固定值。节点编号是在每篇文章中更改的数字):http://websitename.com/category-name/nodenumber/title-of-the-post新建站点链接:http://websitename.com/category-name/title-of-the-post我的问题如下:配置我的Hta