我已经设置了新的Yii2项目。现在我想在两个文件夹中reorganize folder structure" 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仍然可以识别&#34; public&#34;文件夹?
更新1:
在关注@marche的评论后,将以下代码添加到配置文件中:
'components' => [
...
'assetManager' => [
'basePath' => 'my/path/to/assets',
],
...
],
我没有再次出现屏幕错误,但现在内容加载时没有任何CSS样式且没有JS文件(他们仍在从错误的位置拉取URL)。
答案 0 :(得分:1)
如果要更改资产目录,则需要在配置文件web.php
上配置AssetsManager组件:
'components' => [
...
'assetManager' => [
'basePath' => 'my/path/to/assets',
],
...
],
答案 1 :(得分:0)
我找到了解决方案。在“public”文件夹中,我没有使用“index.php”脚本,而是将完整的“web”文件夹从“protected”文件夹中移出(实际上所有资产和脚本都位于该文件夹中)。