使用DDEV Share时Craft CMS无法加载图片与CSS的问题求助
以下是针对问题的具体解决思路:
修正Craft站点URL配置
Craft生成资源链接依赖站点URL设置,需确保它指向Ngrok共享域名:- 临时修改
.env文件中的PRIMARY_SITE_URL为当前ddev share生成的URL(如https://xxxx.ngrok.io) - 或通过环境变量动态适配:将
PRIMARY_SITE_URL设为${DDEV_SHARE_URL:-http://my-site.ddev.site},这样共享时自动用Ngrok地址,本地开发用原域名 - 同步检查Craft后台
设置 > 站点中的站点URL配置,确保与共享URL一致
- 临时修改
调整Vite.js Craft插件配置
由于CSS通过Vite加载,需让Vite生成的资源链接使用共享域名:- 打开
config/vite.php,修改server配置中的origin字段,指向Ngrok共享URL,或利用DDEV环境变量动态设置:'server' => [ 'origin' => getenv('DDEV_SHARE_URL') ?: 'http://my-site.ddev.site', ], - 若希望资源路径相对化,可将
base参数设为'/',确保资源路径基于根目录
- 打开
清除缓存
修改配置后必须清除缓存,避免旧链接残留:- 执行
ddev craft clear-cache命令清除Craft的模板、资产缓存 - 手动清除浏览器缓存,强制加载新的资源链接
- 执行
优化DDEV Share参数
- 确保Ngrok令牌已正确配置:执行
ddev config global --ngrok-token=你的令牌,可通过ddev debug test验证Ngrok状态 - 启动共享时添加Host头参数:
ddev share --host-header=my-site.ddev.site,保证Craft能正确识别站点上下文
- 确保Ngrok令牌已正确配置:执行
内容的提问来源于stack exchange,提问作者Matt B
相关产品推荐
相关产品推荐

