2015-10-15 41 views
3

我已經建立了新的Yii2項目。現在我想reorganize folder structure在兩個文件夾「公共」和「應用程序」(它實際上代表受保護的文件)。Yii中的應用程序文件重組2

框架中的所有代碼都放在「app」文件夾中。在「public」文件夾中,我只有一個名爲「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我得到了以下問題:

enter image description here

所以它看起來像所有的路徑都指向了正確的文件(我有檢查),但我仍然得到了錯誤。那麼我在這裏錯過了什麼?爲什麼basePath仍然識別「公共」文件夾?

更新1:

下從@marche註釋和下面的代碼添加到配置文件後:

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

我沒有得到與屏幕上的錯誤了,但現在內容加載沒有任何CSS樣式和沒有JS文件(他們仍然從錯誤的地方拉URL)。

+0

看到這個:http://stackoverflow.com/questions/26734385/yii2-disable-bootstrap-js-jquery-and-css和問題:https://github.com/yiisoft/yii2/issues/5521 –

回答

0

我找到了解決辦法。在「公共」文件夾中,而不是隻有「index.php」腳本,我已將完整的「web」文件夾從「protected」文件夾(實際上是所有資產和腳本所在的位置)中移出。

1

如果你想改變,你需要在你的配置文件web.php配置AssetsManager組件的資產目錄:

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

好的,我現在有一個進展..我沒有得到錯誤了,但現在資產和CSS沒有加載..我應該添加一些關於他們的東西嗎? – delux