Drupal7添加base_url后CSS失效,报Undefined offset:1错误求助
哥们,我刚帮你梳理了这个问题,其实核心是$base_url的格式不符合Drupal的要求,再配合一些配置调整就能搞定,咱们一步步来:
修正$base_url的格式
你当前设置的$base_url = '127.0.0.1/drupal/myproject';缺少了协议头(http://或https://),这会导致Drupal在解析base_url时出错,直接触发Undefined offset: 1的提示。正确的写法应该是:$base_url = 'http://127.0.0.1/drupal/myproject';如果用localhost访问,就改成
http://localhost/drupal/myproject,必须带上完整的协议前缀。调整.htaccess中的RewriteBase
打开项目根目录(/var/www/html/drupal/myproject)下的.htaccess文件,找到RewriteBase那一行,把它修改为:RewriteBase /drupal/myproject/这个设置能让Apache的URL重写规则正确映射到你的项目路径,确保CSS、图片等资源的请求路径不会出错。
清除Drupal缓存
Drupal会缓存资源路径等配置,即使改了$base_url,旧缓存可能还会导致资源加载异常。你可以用以下几种方式清缓存:- 如果安装了Drush,直接在终端执行:
drush cr - 手动删除
sites/default/files/cache目录下的所有文件(注意不要删目录本身) - 如果你能临时通过根路径访问后台,可以进入配置 -> 性能页面点击“清除所有缓存”按钮
- 如果安装了Drush,直接在终端执行:
额外检查Apache配置
确保你的Apache虚拟主机配置中,把DocumentRoot指向/var/www/html/drupal/myproject,并且开启了AllowOverride All,这样.htaccess的规则才能生效。同时确认项目目录的权限正确,Apache用户(通常是www-data)有读取权限。
内容的提问来源于stack exchange,提问作者prgrm

