【问题标题】:Application file re-organization in Yii 2Yii 2 中的应用程序文件重组
【发布时间】:2015-10-15 21:40:43
【问题描述】:

我已经建立了新的 Yii2 项目。现在我想reorganize folder structure 在两个文件夹“public”和“app”(实际上代表受保护的文件)中。

框架中的所有代码都放在“app”文件夹中。在“公共”文件夹中,我只有一个名为“index.php”的脚本,我从中调用该应用程序。那里的代码如下所示(我只修改了原始“index.php”的路径)。

app/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 还能识别“public”文件夹?

更新 1:

遵循@marche 的评论并将以下代码添加到配置文件中:

'components' => [
    ...
    'assetManager' => [
        'basePath' => 'my/path/to/assets',
    ],
    ...
],

我不再收到屏幕错误,但现在加载的内容没有任何 CSS 样式和 JS 文件(他们仍然从错误的地方提取 URL)。

【问题讨论】:

标签: yii yii2 organization application-structure


【解决方案1】:

如果要更改资产目录,则需要在配置文件web.php 上配置 AssetsManager 组件:

'components' => [
    ...
    'assetManager' => [
        'basePath' => 'my/path/to/assets',
    ],
    ...
],

【讨论】:

  • 好的,我现在有进展了。。我没有再收到错误,但现在资产和 css 没有加载。我应该添加一些关于它们的东西吗?
【解决方案2】:

我找到了解决方案。在“public”文件夹中,而不是只有“index.php”脚本,我已经从“protected”文件夹(实际上所有资产和脚本所在的位置)中移动了完整的“web”文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多