Несколько путей для img и css в CakePHP 3.4 - PullRequest
0 голосов
/ 04 марта 2019

Я использую несколько приложений для тортов, которые используют одно ядро ​​/ baseapp.

Базовая структура: www / myapp1 www / myapp2 www / myapp3 www / baseapp

В каждом «myapp»внутри app.php я указываю путь для шаблонов и плагинов к myapp и baseapp, чтобы, если в myapp не было найдено ни одного файла, использовался файл из baseapp:

'App' => [
        'imageBaseUrl' => 'img/',
        'cssBaseUrl' => 'css/',
        'jsBaseUrl' => 'js/',
        'paths' => [
            'plugins' => [ROOT.DS .'modules'.DS, BASEROOT . DS . 'modules' . DS],
            'templates' => [APP . 'Template' . DS, BASEROOT.'/src/Template'.DS ],
        ],
    ],

(я включаю классы из baseapp внутри composer.json, который, вероятно, не относится к этому вопросу)

Это работает довольно хорошо.

Вопрос: Как я могу сделать так, чтобы он включал img, css и js таким же образом?Я хочу иметь папки, в которых торт должен искать файлы для каждого приложения.

'App' => [ 'imageBaseUrl' => ['img/', BASEROOT. DS . 'webroot/img/'] 

не работает.

1 Ответ

0 голосов
/ 14 марта 2019

Мое решение: В папке webroot я сделал ссылку на BASEROOT (с именем baseroot), а затем создал файл src / View / UrlHelper

class UrlHelper extends CakeUrlHelper{
    public function webroot($file){
        //code
        if (file_exists(\Cake\Core\Configure::read('App.wwwRoot') . $file)) {       
            $webPath = $this->request->getAttribute('webroot') . $asset[0];
        }else{
           $webPath = $this->request->getAttribute('webroot').'baseroot'.DS.$asset[0];
        }
        //more code
    }
}   
...