Относительный путь и слеш

Рейтинг: 0Ответов: 1Опубликовано: 25.10.2014

В общем, есть два идентичных проекта на yii на двух разных машинах (на одной стоит lamp, а на другой - xampp, на обоих машинах стоит debian). На первой машине работает путь типа (и это правильно): Yii::app()->clientScript->registerCssFile('/public/css/main.css');, а на другой (там, где xampp стоит) правильным путем считается вот такой: Yii::app()->clientScript->registerCssFile('public/css/main.css');.
Вопрос: как это поправить? Что где дописать и почему такое произошло?

Ответы

▲ 1

Очень похоже, что разница в том, что в одном окружении проект в корне домена, а на другом в подпапке. Если это так, то добавьте Yii::app()->baseUrl:

Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl . '/public/css/main.css');

С точками и относительными путями играться не стоит. Если включить urlFormat = path в конфиге для urlManager, то относительные пути сыграют с вами злую шутку. Например, путь к стилям public/css/main.css для урла типа http://host.com/controller/action в абсолютной форме будет таким - http://host.com/controller/action/public/css/main.css. И это вам точно не подойдет.