当网址为 /case 或者 /case/ 时,Yii getAlias 生成的图片地址不一样,进而导致 404
1、视图中代码实现如下  ?>)
当网址为 http://official.local/case 时,生成的
,图片地址为 http://official.local/static/images/header/top.png,响应 200
当网址为 http://official.local/case/ 时,生成的
,图片地址为 http://official.local/case/images/top.png ,响应 404。怎样解决?如图1
2、查看 http://official.local/case/ 的页面源代码,生成的
,图片地址为 http://official.local/case/images/top.png ,响应 404。如图2
3、查看 Debug,原来已经报错,且响应 404 yii\base\InvalidRouteException: Unable to resolve the request “case/”. ,如图3
yii\base\InvalidRouteException: Unable to resolve the request "case/". in C:\wwwroot\official-website-management-system\src\vendor\yiisoft\yii2\base\Module.php:561
Stack trace:
#0 C:\wwwroot\official-website-management-system\src\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('case/', Array)
#1 C:\wwwroot\official-website-management-system\src\vendor\yiisoft\yii2\base\Application.php(384): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 C:\wwwroot\official-website-management-system\src\frontend\web\index.php(18): yii\base\Application->run()
#3 {main}
Next yii\web\NotFoundHttpException: Page not found. in C:\wwwroot\official-website-management-system\src\vendor\yiisoft\yii2\web\Application.php:115
Stack trace:
#0 C:\wwwroot\official-website-management-system\src\vendor\yiisoft\yii2\base\Application.php(384): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 C:\wwwroot\official-website-management-system\src\frontend\web\index.php(18): yii\base\Application->run()
#2 {main}
4、最终实现了一个小的帮助类方法
public static function url($path): string
{
$cdn = Yii::$app->params['cdnDomainHttps'] ?? '';
return rtrim($cdn, '/') . '/' . ltrim($path, '/');
}
<img loading="lazy" class="top-icon" src="<?= CdnHelper::url('statics/images/header/top.png') ?>">



近期评论