我遇到了一个奇怪的问题:首先,我提供了我的文件夹结构:
wp-content/themes/theme
├──content.php
├──footer.php
├──functions.php
├──header.php
├──home.php
├──index.php
├──page.php
├──main.js
├──style.css
│
├── media/
│ └── img/
│ ├── beach.mp4
│ ├── contact-1.jpg
│ └── offers-1.jpg
│
└── scripts/
└── map.js
所以,在我的
style.css
我定义了如下背景图像:
background-image:url(\'media/img/offers-1.jpg\');
它显示得很好,但无论我从
index.php
(其中加载
content.php
) 找不到,也就是说,我有一个像这样的普通图像
<img src="media/img/contact-1.jpg">
未找到,错误如下:
GET http://url/newer/media/img/contact-1.jpg 404 (Not Found)
与相同
map.js
,
main.js
还有其他一些图片。
有人知道我做错了什么吗?
最合适的回答,由SO网友:Ibrahim Mohamed 整理而成
css文件中的相对路径相对于css文件位置,但在PHP中,它们相对于网站URL,而不是服务器中的PHP文件位置。
因此,为了确保为要加载到PHP文件中的任何资源获得正确的URL,可以使用函数get_template_directory_uri()像这样:
"<?php echo get_template_directory_uri(); ?>"
:
例如,在img
属性src
将是:
<img src="<?php echo get_template_directory_uri(); ?>/media/img/contact-1.jpg" />
js文件和css文件也是如此。
Notice:如果使用子主题,请改用此函数get_stylesheet_directory_uri() 同样的方式:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/img.jpg" />
否则
get_template_directory_uri()
在这种情况下,函数只返回当前
parent 主题URL,而不是在本例中使用的子主题的URL。