我已经建立了新的 Yii2 项目。现在我想在两个文件夹“public”和“app”(实际上代表受保护的文件)中重新组织文件夹结构。
框架中的所有代码都在“app”文件夹中。在“公共”文件夹中,我只有一个名为“index.php”的脚本,我从中调用该应用程序。那里的代码如下所示(我只修改了原始“index.php”中的路径)。
应用程序/index.php
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../app/vendor/autoload.php');
require(__DIR__ . '/../app/vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../app/config/web.php');
(new yii\web\Application($config))->run();
?>
同样的方法在 Yii 框架中工作,我们得到了不同的命令语法。但现在在 Yii 2 中,我遇到了以下问题:
所以看起来所有的路径都指向正确的文件(我已经检查过了),但我仍然得到了错误。那么我在这里缺少什么?为什么 basePath 仍然识别“公共”文件夹?
更新 1:
遵循@marche 的评论并将以下代码添加到配置文件中:
'components' => [
...
'assetManager' => [
'basePath' => 'my/path/to/assets',
],
...
],
我不再收到屏幕错误,但现在加载的内容没有任何 CSS 样式且没有 JS 文件(他们仍在从错误的位置提取 URL)。