2015-10-15 6 views
3

Я создал новый проект Yii2. Теперь я хочу reorganize folder structure в двух папках «public» и «app» (которые фактически представляют защищенные файлы).Повторная организация файла приложения в Yii 2

Весь код из рамок находится в папке «приложение». В «общедоступной» папке у меня есть только один скрипт с именем «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 2 я получил следующий вопрос:

enter image description here

Так что, похоже, как и все пути указывают на правильные файлы (у меня есть проверить, что), но я все равно получил ошибку. Так что мне здесь не хватает? Почему basePath все еще распознает «общедоступную» папку?

UPDATE 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», я переместил всю «веб-папку» из «защищенной» папки (где на самом деле были расположены все активы и скрипты).

1

Если вы хотите изменить каталог активов, что вам нужно настроить AssetsManager компонент на вашем конфигурационном файле web.php:

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

Хорошо, теперь у меня есть прогресс. Я больше не получаю ошибку, но теперь активы и css не загружены. Должен ли я добавить что-то еще о них? – delux