当前位置:首页>php>Tinkphp框架的网站换新域名后,后台还是调用旧的域名,如何清理缓存使用新域名

Tinkphp框架的网站换新域名后,后台还是调用旧的域名,如何清理缓存使用新域名

  • 2026-10-21 13:27:13
Tinkphp框架的网站换新域名后,后台还是调用旧的域名,如何清理缓存使用新域名
点击上方👆浪哥科技👇
+关注★星标★

更换ThinkPHP后台域名后出现CSS/JS加载问题,通常是以下几个原因造成的。请按顺序排查:

1. 首先清除所有缓存

# 进入项目根目录cd /your/project/path# 清除ThinkPHP缓存rm -rf runtime/cache/*rm -rf runtime/temp/*rm -rf runtime/admin/*# 清除模板缓存rm -rf runtime/tpl/*# 如果是Linux系统,确保权限正确chmod -R 755 runtime/chown -R www:www runtime/  # 根据实际用户组调整

检查配置文件

2. 检查配置文件

config/app.php 中的配置:

// 确保以下配置正确return [// 应用地址'app_host'         => 'https://new-domain.com',// 自动写入的静态资源域名'view_replace_str' => ['__STATIC__' => 'https://new-domain.com/static','__CSS__'    => 'https://new-domain.com/static/css','__JS__'     => 'https://new-domain.com/static/js','__IMG__'    => 'https://new-domain.com/static/images',    ],];

.env 文件配置(如果有):

APP_HOST = https://new-domain.com

3. 更新数据库中的域名配置

如果后台配置存储在数据库中,需要更新:

-- 检查配置表SELECT*FROM `system_config` WHERE `name` LIKE'%domain%'OR `name` LIKE'%url%';-- 更新相关配置UPDATE `system_config` SET `value` ='https://new-domain.com'WHERE `name` IN ('site_url', 'web_url', 'admin_url');

4. 强制更新静态资源引用

在入口文件 public/index.php 开头添加:

// 强制设置当前域名define('NOW_HOST', 'https://new-domain.com');$_SERVER['HTTP_HOST'] = 'new-domain.com';// 或者直接修改URLif (!function_exists('url')) {functionurl($url = '', $vars = '', $suffix = true, $domain = true) {$url = \think\Url::build($url, $vars, $suffix, $domain);returnstr_replace('old-domain.com', 'new-domain.com', $url);    }}

5. 检查模板文件中的硬编码链接

搜索所有模板文件(通常在 app/admin/view/ 目录下):

# 查找所有包含旧域名的文件grep -r "old-domain.com" app/admin/view/# 批量替换(谨慎操作,先备份)find app/admin/view/ -type f -name "*.html" -exec sed -i 's|old-domain.com|new-domain.com|g' {} \;

6. 浏览器端清理

  1. 1. 按 Ctrl+Shift+Delete 清除浏览器缓存
  2. 2. 或使用无痕模式访问
  3. 3. 按 Ctrl+F5 强制刷新页面

7. 快速临时解决方案

如果急需登录后台,可以修改 public/.htaccess(Apache)或 nginx.conf(Nginx):

Apache (.htaccess):

<IfModule mod_headers.c>Header set Cache-Control "no-cache, no-store, must-revalidate"Header set Pragma "no-cache"Header set Expires 0</IfModule>

Nginx 配置:

location / {add_header Cache-Control "no-cache, no-store, must-revalidate";add_header Pragma "no-cache";add_header Expires 0;}

8. 完整排查脚本

创建一个临时脚本 check_domain.php 放在项目根目录:

<?php// 检查当前域名配置echo"当前访问域名: " . $_SERVER['HTTP_HOST'] . "<br>";echo"ThinkPHP应用域名: " . config('app.app_host') . "<br>";// 检查静态资源路径$viewReplace = config('app.view_replace_str');echo"静态资源配置: <pre>";print_r($viewReplace);echo"</pre>";// 检查路由echo"当前URL生成测试: " . url('admin/index/login') . "<br>";

推荐操作顺序:

  1. 1. 首先:清除所有缓存(步骤1)
  2. 2. 然后:检查配置文件(步骤2)
  3. 3. 接着:更新数据库配置(步骤3)
  4. 4. 最后:检查模板文件(步骤5)

如果以上方法都不行,请检查是否有CDN缓存、反向代理缓存,或者查看浏览器开发者工具(F12)的Network面板,查看具体哪些资源还是旧域名,然后针对性处理。

END
推荐
#

推荐文章

点击阅读原文,查看更多

点分享
点收藏
点在看
点点赞

最新文章

随机文章