Как URL обрабатываются в файле CSS в CakePHP, таким образом, они ссылаются на корректное местоположение?

Ваш запрос выглядит намного сложнее, чем нужно. Вы можете сделать все это с условным агрегированием и без подзапросов или CTE:

select rank() over (order by sum(case when location_id like 'C0R%' or location_id like 'C0s%' then 1 else 0 end) desc) as count_rank,
       sku_id,
       sum(case when location_id like 'C0R%' then 1 else 0 end) as Bulk_Count
       sum(case when location_id like 'C0S%' then 1 else 0 end) as Bin_Count
from Inventory i
where client_id = 'SDRY-US' and site_id = 'USCOL1' 
group by sku_id
having sum(case when location_id like 'C0R%' or location_id like 'C0s%' then 1 else 0 end) > 9;

Вы можете ввести подзапрос просто для упрощения псевдонимов столбцов:

select rank() over (order by Bulk_Count + Bin_Count desc) as count_rank,
       i.*
from (select sku_id,
             sum(case when location_id like 'C0R%' then 1 else 0 end) as Bulk_Count
             sum(case when location_id like 'C0S%' then 1 else 0 end) as Bin_Count
      from Inventory i
      where client_id = 'SDRY-US' and site_id = 'USCOL1' 
      group by sku_id
     ) i
where Bulk_Count + Bin_Count > 9
9
задан Chuck Burgess 18 January 2013 в 15:53
поделиться

5 ответов

Вы не должны использовать $html-> URL () в Вашем файле CSS, следовательно, Вы не должны проанализировать файлы CSS через PHP или создать CssController.

Если Ваше приложение пирога установлено в Ваших виртуальных хостах DocumentRoot, просто сделайте все пути к изображениям абсолютными от webroot., например.

div.coolbg {
  background-image: url(/img/coolbg.jpg);
}

Это применит изображение в app/webroot/img/coolbg.jpg к Вашему

Если Ваше приложение пирога не установлено в виртуальных хостах DocumentRoot, т.е. Вы получаете доступ к своему приложению пирога через URL как http://www.domain.com/myapp/, то Вы делаете путь к изображению относительно файла CSS. Проверьте правила стиля в app/webroot/css/cake.generic.css, например.

#header h1 {
background:#003D4C url(../img/cake.icon.gif) no-repeat scroll left center;
color:#FFFFFF;
padding:0 30px;
}

Это работает, потому что таблицы стилей, живые в app/webroot/css/каталоге и изображении, живом в app/webroot/img/каталоге, таким образом, путь "../img/cake.icon.gif" подходит из каталога CSS, затем обратно вниз в img каталог.

26
ответ дан 4 December 2019 в 07:48
поделиться

Можно добавить CSS, который будет обработан через PHP путем редактирования .htaccess файла в Apache. Обработке его, в противоположность просто выкладыванию его действительно поражали небольшую производительность.

AddType application/x-httpd-php .css

Кроме того, см.: http://www.webmasterworld.com/forum88/5648.htm

0
ответ дан 4 December 2019 в 07:48
поделиться

Это не поможет слишком много с материалом Пирога, если Вы сначала не инстанцируете объектов Пирога. Если Вы захотите использовать помощника HTML, то Вы, вероятно, захотите выяснить, как первый объект Пирога инстанцируют, то подражайте этому в своем материале CSS. Не уверенный точно, как я сделал бы это - я думаю, имея весь CSSController, было бы излишество, но я думаю, что Вам, возможно, придется инстанцировать контроллера приложения (в конце концов, Вы хотите, чтобы переписанный URL CSS отразил Вас настройки приложения, правильно?). Таким образом, я предполагаю, что Вам, вероятно, придется создать CSSController так или иначе.

0
ответ дан 4 December 2019 в 07:48
поделиться

Целый набор cakephp экспертов, вероятно, собирается ненавидеть меня за предложение этого..:)

Самое легкое решение для меня состояло в том, чтобы просто включать файл изображения в папку CSS. Что-то вроде этого

/app/webroot/css/css_images/mypic.jpg

Таким образом в файле CSS я просто вставил бы:

background-image: url(css_images/mypic.jpg);

Плохая вещь, очевидно, это не cakiest вещь сделать. Хорошая вещь состоит в том, что это будет работать независимо при использовании необычного URL или не, так как CSS находит изображение относительно файла CSS.

0
ответ дан 4 December 2019 в 07:48
поделиться

I would definately go for the solution suggested by zam3858. And if you don't like to have your images in two distinct locations, create a symbolic link in the css directory that points to the images. Like this:

$ cd app/webroot/css 
$ ln -s ../img .

Now, the image paths will be resolved correctly for both the html helper and style sheets:

// css:
url(img/image.png);

// view.ctp
echo $html->image('image.png');

It may not be the cakiest solution, but it doesn't look like cakephp provides one.

1
ответ дан 4 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: