如何在CakePHP + jQuery DivCorners插件中正确处理图像URL

时间:2012-01-16 14:29:17

标签: jquery cakephp jquery-plugins cakephp-2.0

问题如下:在主页面上,所有图像都在其他页面上正确显示,因为相对路径错误,图像丢失。

在我的javascript文件中,我有几个这样的调用:

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

我的第一个想法是更改imgPrefix,以便它指向图像的绝对网址。有没有更好的方法?

3 个答案:

答案 0 :(得分:0)

$("#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->webrootAPP/webroot

的路径

IMAGES是一个指向APP/webroot/img/的CakePHP定义常量。

答案 1 :(得分:0)

PHP通常不会在.js文件中解析,因为这会产生各种问题。您可以做的是在$scripts_for_layout之前声明一个JavaScript变量,其中包含Cake布局中图像的路径。我相信Wordpress会做类似于正确处理AJAX请求的URL。

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

在这种情况下,您可以在外部JavaScript文件中使用IMAGE_PATH,这些文件通常作为$scripts_for_layout变量的一部分打印。

您还可以在外部JavaScript文件中声明一个全局变量,其中包含图像的绝对路径,如果这是您需要绝对路径的唯一位置。

答案 2 :(得分:0)

有同样的问题。以下为我工作。

<?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>