首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress主题找不到CSS (localhost)

Wordpress主题找不到CSS (localhost)
EN

Stack Overflow用户
提问于 2013-04-15 17:55:10
回答 3查看 4.7K关注 0票数 3

我正在使用来自http://html5blank.com的Wordpress主题,当我将它上传到我的在线服务器上时,它工作得很好,但是当我使用Wordpress Bitnami在本地使用它时,主题找不到css。在header.php中,您有:

代码语言:javascript
复制
<!-- css + javascript -->
<?php wp_head(); ?>

但是当我在localhost (激活主题之后)查看dev站点的源时,我发现css的href是空的:

代码语言:javascript
复制
<!-- css + javascript -->
<link rel='stylesheet' id='normalize-css'  href='' media='all' />
<link rel='stylesheet' id='html5blank-css'  href='' media='all' />

同时,它也找到了图像和图标:

代码语言:javascript
复制
<!-- icons -->
<link href="http://localhost:8080/wordpress/wp-content/themes/html5blank-master/img/icons/favicon.ico" rel="shortcut icon">
<link href="http://localhost:8080/wordpress/wp-content/themes/html5blank-master/img/icons/touch.png" rel="apple-touch-icon-precomposed">

我的操作系统是Ubuntu12.10。这是Bitnami的问题吗,还是我可以解决这个问题,这样我就可以在本地网站上工作了?注意,默认主题“12y12”在我的设置中工作得很好。

更新:我在Bitnami堆栈中比较并尝试了html5blank主题的1.2.9和1.4.0 (当前版本)两个版本。就functions.php而言,这两个版本的wp_register_style()文件是相同的,但是版本1.2.9填充到css的链接,而版本1.4.0将它们保留为空。还请注意,1.4.0在Windows 7上的Bitnami安装中工作得非常好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 21:20:25

问题是主题设计中的一些代码与运行在非标准端口号上的WordPress之间的交互。

我追踪到函数wp_kses_bad_protocol报告到WordPress的esc_url函数(由style enqueuer使用,WP_Styles类在wp-includes/class.wp-styles.php中使用),说明样式表URL的协议无效。esc_url的存在是为了防止淘气的东西变成URL;其中一个检查是检查是否有什么可疑的东西,比如javascript:协议,而不是http:

错误检测问题的原因似乎是html5blank主题为过滤器style_loader_src添加了一个过滤器函数html5blank_protocol_relative。一般来说,这似乎并不是一件坏事(协议相对基本上意味着用//whatever...代替http://whatever...,这避免了将https和http混合在同一个页面上的问题-- //whatever的“协议相对”URL将酌情使用https或http )。

但是,当您在特定端口号上运行WordPress时,这似乎混淆了糟糕的协议检测。

长话短说:您可能想向主题的开发人员报告这一点,以便让他知道,由于这个原因,在非标准端口上运行WordPress时,他的主题中断了,即使用http://localhost:8080/wordpress之类的URL,而不是http://localhost/wordpress

在短期内,我只想评论一下这几句话:

代码语言:javascript
复制
add_filter('script_loader_src', 'html5blank_protocol_relative'); // Protocol relative URLs for enqueued scripts
add_filter('style_loader_src' , 'html5blank_protocol_relative'); // Protocol relative URLs for enqueued styles

...in主题的functions.php;这应该关闭协议相对URL过滤,您的主题应该在本地工作。除非您的活动站点使用https,否则它们仍然能够很好地处理此更改,而且即使它们确实使用https,您也不会比现有的大多数主题更糟糕。

票数 5
EN

Stack Overflow用户

发布于 2013-04-15 18:34:53

您需要查看functions.php -您的主题可能使用enque作为将CSS传递给wp_head的方法。有关更多信息,请参见本教程:http://wp.tutsplus.com/articles/how-to-include-javascript-and-css-in-your-wordpress-themes-and-plugins/

票数 0
EN

Stack Overflow用户

发布于 2021-11-18 10:56:31

如果您从优雅的主题中使用Divi主题,您可能会遇到相同的问题,即您的设计工作的结果没有反映您在可视化构建器中所做的设置。要解决本地主机上的这个问题,您只需安装WP文件管理器插件,转到wp内容并删除et-cache文件夹。就这样!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16021673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档