Страница 1 из 1

Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.02, 00:19
MadMax
Добрый день!
А вот какой вопросик...
Для работы с ЧПУ ссылками вынужден был задать в настройках baseUrl равным пустой строке:

Код: Выделить всё

'components' => [
    'request' => [
        'baseUrl' => ''
    ],
После чего "отвалились" все стили.
Чтобы хоть как-то исправить ситуацию пришлось в классе app\assets\AppAsset свойство $css задать так:

Код: Выделить всё

public $css = ['/web/css/site.css',];
Стили находящиеся в site.css вернулись.
В конечном файле соответствующая строка выглядит так
<link href="/web/css/site.css" rel="stylesheet">
и это правильно.
Но как я не пытался, мне так и не удалось корректно подключить секцию $depends:

Код: Выделить всё

public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset',
];
соответствующая строка выглядит так
<link href="/assets/bd6a8505/css/bootstrap.css" rel="stylesheet"> и это не правильно.
Должно быть так:
<link href="/web/assets/bd6a8505/css/bootstrap.css" rel="stylesheet">.
Подскажите чего, где менять?

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.02, 12:05
rak
MadMax писал(а): Для работы с ЧПУ ссылками вынужден был задать в настройках baseUrl равным пустой строке:
Начать нужно вот с этого.
Для чего это было сделано?

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.02, 17:52
woland
добавьте в AppAsset.php :
public $basePath = '@webroot';
public $baseUrl = '@web';

и <link href="/assets/bd6a8505/css/bootstrap.css" rel="stylesheet"> станет правильно

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.02, 22:31
MadMax
rak писал(а):Для чего это было сделано?
Для того, чтобы избавиться от /web в адресе.
Возможно я использую не верный подход, но как тогда поступить?
woland писал(а):добавьте в AppAsset.php :
public $basePath = '@webroot';
public $baseUrl = '@web';
Да, все это уже стоит. Но эффекта ноль
Вот полное описание этого класса

Код: Выделить всё

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        '/web/css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.03, 05:56
Nerf
Сделайте, чтобы сервер смотрел в web.

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.03, 21:30
MadMax
Nerf писал(а):Сделайте, чтобы сервер смотрел в web.
Да, я встречал в сети такое решение. Просто думал, что во фреймворке есть для данной "беды" решение.

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.03, 22:51
Йож
Не во фреймворке, а в Apache есть :)
в .htaccess в корень, куда домен смотрит, вписать:

Код: Выделить всё

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule !^web /web%{REQUEST_URI} [L]

Re: Настройка ссылок на ресурсы при использовании ЧПУ

Добавлено: 2016.07.04, 22:07
MadMax
Йож писал(а):Не во фреймворке, а в Apache есть :)
в .htaccess в корень, куда домен смотрит, вписать:

Код: Выделить всё

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule !^web /web%{REQUEST_URI} [L] 
Да, в итоге нечто подобное я и сделал.
Благодарю всех за ответы.