Как правильно обрабатывать URL изображения в плагине CakePHP + jQuery DivCorners - PullRequest
0 голосов
/ 16 января 2012

Проблема заключается в следующем: на главной странице все изображения отображаются правильно, на других страницах изображения отсутствуют из-за неправильного относительного пути.

В моем файле JavaScript у меня есть несколько вызовов, таких как:

$("#header").dcCreate({
        imgPrefix: "img/b/h/",
        fileType: ".png",
        expand: 16,
        position: "outside"
    });

Моя первая идея - изменить imgPrefix так, чтобы он указывал на абсолютный URL-адрес изображения.Есть ли лучшие способы?

Ответы [ 3 ]

0 голосов
/ 16 января 2012

PHP обычно не анализируется внутри .js файлов, так как это может создать всевозможные проблемы.Что вы можете сделать, это объявить переменную JavaScript с путем к изображениям в макете Cake до $scripts_for_layout.Я полагаю, что Wordpress делает нечто подобное для правильной обработки URL-адресов для запроса AJAX.

  <?php echo $this->Html->scriptBlock(sprintf('var IMAGE_PATH = "%s";', IMAGES)); ?>

В этом случае вы можете использовать IMAGE_PATH во внешних файлах JavaScript, которые обычно печатаются как часть переменной $scripts_for_layout.

Вы также можете объявить глобальную переменную во внешнем файле JavaScript, содержащем абсолютный путь к вашим изображениям, если это единственное место, где вам нужен абсолютный путь.

0 голосов
/ 14 августа 2013

Была такая же проблема.Следующее сработало у меня.

<?php $folder = $this->webroot; ?>

<script type="text/javascript">
      var folderPath = '<?php echo $folder; ?>';

      $("#header").dcCreate({
        imgPrefix: folderPath  + "img/b/h/",
        fileType: ".png",
        expand: 16,
        position: "outside"
       });
 </script>
0 голосов
/ 16 января 2012
$("#header").dcCreate({
        imgPrefix: "<?php echo $this->webroot; ?>img/b/h/",
        fileType: ".png",
        expand: 16,
        position: "outside"
    });

или даже

$("#header").dcCreate({
        imgPrefix: "<?php echo IMAGES; ?>b/h/",
        fileType: ".png",
        expand: 16,
        position: "outside"
    });

сделает его немного более портативным.$this->webroot - это путь к APP/webroot

IMAGES - это определенная CakePHP константа, указывающая на APP/webroot/img/.

...