2012-05-08 2 views
5

Yii вопрос.Yii - Как заставить Yii переиздать папку с активами

На моей машине разработки необходимые файлы JQuery для приложения присутствовали в подпапке под папкой «Ресурсы». Однако, когда я скопировал приложение на свой тестовый сервер, файлы JQuery отсутствовали в папке yii, которая искала их. Я продолжал получать ошибки, такие как «../assets/db0e5a94/jquery.ba-bbq.js» 404 не найден и т. Д.

Я опорожнил папку с ресурсами, и теперь все мои файлы CSS и т. Д., Как сообщается, отсутствуют. Есть ли способ заставить Yii переиздавать папку с ресурсами?

Спасибо!

+3

Попробуйте удалить содержимое папки активов. Yii переиздает его – dInGd0nG

+0

Я пробовал - не работает. Он переиздает несколько файлов, а не другие, которые требуются. – ARV

+1

Проверьте права доступа к папке (или некоторые ошибки в файле журнала). Возможно, у yii нет разрешения на запись файлов в эту папку? И дайте код, как вы используете css-файл в своем проекте (регистрируете бросок CClientScript или просто вставляете ссылку в html part? –

ответ

0

Простой способ вернуть свои активы, чтобы вручную скопировать их из каталога framework. Я знаю, что это не лучший способ сделать это, но он должен помочь вам, пока вы найдете лучшее решение.

+1

Я бы предпочел не делать этого, так как имена папок разные. Каков правильный Yii-способ сделать это - вот в чем вопрос! – ARV

+0

Хороший вопрос. У меня была та же проблема, и я решил свой путь, но я полностью согласен с тем, что это не так. –

9

Просто удалите все подкаталоги в папке с ресурсами и очистите кеш браузера. Не удаляйте каталог ресурсов, иначе вам придется снова установить права на запись.

0

Попросите вашего поставщика услуг хостинга отключить SAFE_MODE в php.ini. Затем удалите каталог asstes вместе со своими вспомогательными файлами и папками и создайте его снова. Убедитесь, что вы установили CHMOD в 0777 для нового созданного каталога.

0

У меня также была такая же проблема. После загрузки соответствующих файлов на сервер я изменил разрешение файла на 755 на сервере. Тогда это сработало.

3

в компоненты/Controller.php добавить следующую функцию:

protected function beforeAction($action){ 
    if(defined('YII_DEBUG') && YII_DEBUG){ 
     Yii::app()->assetManager->forceCopy = true; 
    } 
    return parent::beforeAction($action); 
} 
+0

Для Yii2 это можно сделать через конфигурацию, см. Мой ответ здесь: https://stackoverflow.com/a/26439007/885397 – jlapoutre

Смежные вопросы