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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
MadMax
Сообщения: 4
Зарегистрирован: 2016.07.02, 00:12

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

Сообщение 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">.
Подскажите чего, где менять?

rak
Сообщения: 2038
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

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

Сообщение rak »

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

Аватара пользователя
woland
Сообщения: 9
Зарегистрирован: 2012.11.11, 11:01

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

Сообщение woland »

добавьте в AppAsset.php :
public $basePath = '@webroot';
public $baseUrl = '@web';

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

MadMax
Сообщения: 4
Зарегистрирован: 2016.07.02, 00:12

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

Сообщение 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',
    ];
}

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

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

Сообщение Nerf »

Сделайте, чтобы сервер смотрел в web.

MadMax
Сообщения: 4
Зарегистрирован: 2016.07.02, 00:12

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

Сообщение MadMax »

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

Аватара пользователя
Йож
Сообщения: 572
Зарегистрирован: 2015.08.26, 03:05

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

Сообщение Йож »

Не во фреймворке, а в Apache есть :)
в .htaccess в корень, куда домен смотрит, вписать:

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

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

MadMax
Сообщения: 4
Зарегистрирован: 2016.07.02, 00:12

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

Сообщение MadMax »

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

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

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

Закрыто