0

在我的插件中,我有一些管理区域的样式。最初,我只是在主插件文件中做它们,内联,但现在我已经将它们排入队列。样式表已正确排队;所有样式都正常工作,除了 - 样式表中引用的任何图像都不会显示。当样式内联时,它们显示得很好,但是当我将样式表排入队列时,它们没有显示出来。路径不是问题,因为样式表与以前内联样式的插件文件位于同一目录中。

这是我将其排入队列的方式:

function my_style() {
wp_register_style( 'style', plugins_url('style.css', __FILE__) );
wp_enqueue_style( 'style' );
}
add_action( 'admin_enqueue_scripts', 'my_style' );

再说一遍:入队是正确的,因为所有其他样式都可以正常工作。所以这是我的样式表中的图像示例:

#mycustom-mb h3:before {
    content:url("../wp-content/plugins/my-plugin/images/banner.png");
}

当样式是内联而不是排队时,同一行也有效。WordPress 是否在做一些奇怪的事情来阻止我的图像?它甚至没有在 Firebug 中给我一个文件未找到错误,也没有在标题中显示损坏的图像链接(就像当你有一个错误的路径时那样)。它只是不存在。在 Firebug 中,当您将鼠标悬停在其链接上时,Firebug 甚至不会尝试搜索图像,就像它在所有其他图像上所做的那样。因此,当样式表被加入管理员队列时,感觉就像 WordPress 对图像做了一些奇怪的事情。

我也不能进行常规包含,因为虽然它工作正常,但当我将我的 CSS 内联或包含在内时,它会在插件激活时给出“意外字符”警告消息。

4

1 回答 1

2

url()您的一个 css 规则中使用时,您必须记住,路径是相对于它们所在的样式表的。

因此,对于内联样式,路径是相对于 的/wp-admin/,但是当您加载在 中找到的样式表时/wp-content/plugins/my-plugin/style.css,所有路径都将相对于/wp-content/plugins/my-plugin/

因此,为了定位找到图像的正确 URL,您只需使用以下命令:

#mycustom-mb h3:before {
    content:url("images/banner.png");
}

我现在正在使用 Chrome 开发人员工具,我知道当样式表中的规则导致浏览器加载图像时,它肯定会显示 404 not found 错误,所以我不确定为什么 FireBug 不会显示任何错误。

于 2013-10-06T17:46:17.123 回答