2016-09-02 3 views
0

Я пытаюсь включить файл css, расположенный в frontend/web/css, чтобы использовать основной макет. Это , работающий на бэкэнд, но ошибка продукта для интерфейса. frontend web url staging.example.com и адрес веб-сайта backend.example.com.Включая файл CSS Frontend в Backend в Yii2

<?php 
namespace frontend\assets; 
use yii\web\AssetBundle; 

class IconAsset extends AssetBundle 
{ 
    public $sourcePath = '@frontend/web'; 
    public $css = [ 
     'css/icon.css', 
    ]; 
} 
?> 

Код внутри макета внешнего интерфейса main.php

use frontend\assets\IconAsset; 
IconAsset::register($this); 

Код внутри макета бэкенд main.php

use frontend\assets\IconAsset; 
IconAsset::register($this); 

ответ

0

Вам нужно создать пользовательский Asset Bundle в веб-интерфейсе, как следует

 namespace frontend\assets; 
    use yii\web\AssetBundle; 
    use yii\web\YiiAsset; 

     class CustomAsset extends AssetBundle{ 
      public $basePath = '@webroot'; 
      public $baseUrl = '@web'; 
      public $css = [ 
       'css/custom.css', 
       'css/another_css.css' 
      ]; 
     }` 

Помещенный выше кода в веб-интерфейс, доступной папку и зарегистрировать этот актив в bakend основной файл макета следующим

use frontend\assets\CustomAsset; 
use Yii; 

$bundle = CustomAsset::register(Yii::$app->view); 
+0

Спасибо за ваш комментарий. Мой код работает для бэкэнд, но дает ошибку, когда я пытаюсь зарегистрировать IconAsset во внешнем главном макете, он дает ошибку. Скажите, пожалуйста, как использовать это в главном макете frontend. – Alex

+0

см. Этот ответ [Carlos Manzo] (http://stackoverflow.com/questions/37154991/share-assets-between-frontend-and-backend-in-yii2-advanced-template) –

+0

Я пробовал свой код, но получил Ошибка запроса на исходный исходный код, так как мой фронт (staging.example.com) и бэкэнд (backend.example.com) имеют разные субдомены – Alex

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