WordPress 4.9.3主题CSS失效问题求助
我处理过不少WordPress迁移后样式失效的案例,你这种情况(CSS能加载但页面只显示纯HTML)其实挺常见的,大概率是路径引用、缓存或者服务器配置的问题,给你几个针对性的解决步骤:
先清缓存!强制刷新+禁用缓存插件
浏览器缓存旧路径是最容易忽略的点,先按Ctrl + Shift + R(Windows)或Cmd + Shift + R(Mac)强制刷新页面,彻底清除浏览器缓存。如果你的站点装了缓存插件(比如WP Super Cache、W3 Total Cache),先暂时禁用,清理插件生成的缓存后再测试——很多时候迁移后的旧缓存会直接导致样式不生效。检查主题的资源加载方式
有些非官方主题可能会硬编码CSS的绝对路径,而不是用WordPress标准的wp_enqueue_style()函数加载。你可以打开主题目录下的functions.php,搜搜有没有类似<link rel="stylesheet" href="http://旧路径/wp-content/themes/xxx/style.css">的硬编码代码,把它替换成标准写法:function my_theme_load_styles() { wp_enqueue_style( 'theme-main-style', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'my_theme_load_styles' );至于Twenty Fifteen这类官方主题,硬编码的可能性很低,但可以确认下它的
functions.php里的资源入队逻辑是否正常。确认wp-config.php的内容路径配置
迁移后有时候会出现WP_CONTENT_URL或WP_CONTENT_DIR配置错误的情况,打开根目录的wp-config.php,看看有没有类似下面的配置,如果有,核对路径是否和当前服务器的实际目录匹配:define('WP_CONTENT_URL', 'http://你的新域名/wp-content'); define('WP_CONTENT_DIR', '/服务器绝对路径/wp-content');如果没有这些配置,也可以手动添加,明确指定资源的正确路径,避免WordPress自动生成错误的URL。
清理数据库中的旧路径残留
你已经修改了home和siteurl,但数据库里可能还有其他地方藏着旧路径——比如wp_posts里的文章内容、wp_options里的upload_path等选项。先备份数据库,然后用SQL语句批量替换(注意把wp_换成你的数据库前缀):UPDATE wp_options SET option_value = replace(option_value, '旧域名/旧目录路径', '新域名/新目录路径') WHERE option_name IN ('home', 'siteurl', 'upload_path', 'fileupload_url'); UPDATE wp_posts SET post_content = replace(post_content, '旧域名/旧目录路径', '新域名/新目录路径'); UPDATE wp_postmeta SET meta_value = replace(meta_value, '旧域名/旧目录路径', '新域名/新目录路径');检查服务器的MIME类型设置
虽然你说CSS内容下载正确,但如果服务器没把CSS文件的MIME类型设为text/css,浏览器可能会把它当成普通文本,不会解析样式。可以在根目录的.htaccess文件里加这段代码强制设置:AddType text/css .css如果没有
.htaccess,新建一个就行,权限设为644就好。
内容的提问来源于stack exchange,提问作者MasterWizard

