frost18
@frost18
Программист PHP

Не публикуются файлы ресурсов в Yii2, где искать ошибку?

На локальном сервере все работает, а когда выкладываю на хостинг то папка "assets" пуста
Настройки компонента:
'components' => [
        'assetManager' => [
            'linkAssets' => true,
        ],

Задание для размещения:
class BackAsset extends AssetBundle{

    public $sourcePath = '@app/widgets/d_back/assets';
    public $baseUrl = '@webroot';
    public $css = [
        'css\d_back.css',
    ];
    public $js = [];
    public $depends = [
        'app\assets\AppAsset',
    ];
}


Папка assets в web директории пуста, в чем может быть причина?

Класс "AssetManager" и метод "publishDirectory":
protected function publishDirectory($src, $options)
    {
        $dir = $this->hash($src);
        $dstDir = $this->basePath . DIRECTORY_SEPARATOR . $dir;
        if ($this->linkAssets) {

var_dump($dstDir);
echo '<br/>';
var_dump(is_dir($dstDir));
exit();

            if (!is_dir($dstDir)) {
                symlink($src, $dstDir);
            }
        } elseif (!empty($options['forceCopy']) || ($this->forceCopy && !isset($options['forceCopy'])) || !is_dir($dstDir)) {
            $opts = array_merge(
                $options,
                [
                    'dirMode' => $this->dirMode,
                    'fileMode' => $this->fileMode,
                ]
            );
            if (!isset($opts['beforeCopy'])) {
                if ($this->beforeCopy !== null) {
                    $opts['beforeCopy'] = $this->beforeCopy;
                } else {
                    $opts['beforeCopy'] = function ($from, $to) {
                        return strncmp(basename($from), '.', 1) !== 0;
                    };
                }
            }
            if (!isset($opts['afterCopy']) && $this->afterCopy !== null) {
                $opts['afterCopy'] = $this->afterCopy;
            }
            FileHelper::copyDirectory($src, $dstDir, $opts);
        }

        return [$dstDir, $this->baseUrl . '/' . $dir];
    }


Мне выводит:
string(55) "/home/httpd/vhosts/site.com/httpdocs/assets/d780c76"
bool(true)
Вопрос: Почему функция "is_dir" возвращает TRUE если такого пути еще не существует(папка assets пуста) ?
  • Вопрос задан
  • 433 просмотра
Решения вопроса 1
vakorovin
@vakorovin
Разработчик
В правах доступа? У пользователя, под которым работает web-сервер есть права доступа на запись в эту папку?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
EnChikiben
@EnChikiben
у вас символьные ссылки linkAssets включены в этом случае копирования не происходит
www.yiiframework.com/doc-2.0/yii-web-assetmanager....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы