2012-01-16 23 views
0

問題如下:在主頁面上所有圖片在其他頁面上正確顯示圖片由於錯誤的相對路徑而丟失。如何在CakePHP + jQuery DivCorners插件中正確處理圖片url

在我的JavaScript文件,我有幾個電話是這樣的:

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

我最初的想法是改變imgPrefix,使其將指向圖像的絕對URL。有沒有更好的方法?

回答

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定義的常量。

+2

這不適用於.js文件。我不想更改文件擴展名。 – bancer 2012-01-16 16:16:08

0

PHP通常不會在.js文件中解析,因爲這會造成各種問題。你可以做的是在$scripts_for_layout之前聲明一個JavaScript變量,其中包含Cake佈局中圖像的路徑。我相信Wordpress能夠正確處理AJAX請求的URL。

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

在你可以使用在正常打印作爲$scripts_for_layout變量的一部分你的外部JavaScript文件IMAGE_PATH這種情況下。

您還可以在包含圖像絕對路徑的外部JavaScript文件中聲明全局變量,如果這是唯一需要絕對路徑的地方。

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>