Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Cakephp更正javascript中图像的路径_Javascript_Cakephp - Fatal编程技术网

使用Cakephp更正javascript中图像的路径

使用Cakephp更正javascript中图像的路径,javascript,cakephp,Javascript,Cakephp,我是cakephp新手,我有一个脚本,我将其转换为cakephp。 我有一个旋转的背景,使用4幅图像,如下所示: $.backstretch([ "img/bg/1.jpg", "img/bg/2.jpg", "img/bg/3.jpg", "img/bg/4.jpg" ], { fade: 1000, duration: 8000 }); <script> $.backstretch([ img_path

我是cakephp新手,我有一个脚本,我将其转换为cakephp。 我有一个旋转的背景,使用4幅图像,如下所示:

$.backstretch([
    "img/bg/1.jpg",
    "img/bg/2.jpg",
    "img/bg/3.jpg",
    "img/bg/4.jpg"
], {
     fade: 1000,
     duration: 8000
});
<script>
    $.backstretch([
        img_path + "/bg/1.jpg",
        img_path + "/bg/2.jpg",
        img_path + "/bg/3.jpg",
        img_path + "/bg/4.jpg"
    ], {
         fade: 1000,
         duration: 8000
    });
</script>
当我用use controller users和action login打开name_domain.com这样的脚本时,它会看到所有的图像,并且所有的图像都工作得很好,但是当我尝试使用
register(controller=>users,action=>signup)
时,图像不会被加载。 但是我把
。/img…
放在这里,而不是索引中

如何正确链接这些图像。我也尝试使用“/img”,但不起作用


任何帮助都将不胜感激。

尝试使用像这样的完整路径

$this->webroot.'img/myimage.jpg'


尝试使用像这样的完整路径

$this->webroot.'img/myimage.jpg'


一种方法是设置JavaScript变量,然后在后续脚本中使用该变量。例如,在你的app/Layouts/default.ctp文件中,你可以有:

<script>
    var img_path = "<?php echo Configure::read('App.imageBaseUrl'); ?>";
</script>

var img_path=“”;
然后在脚本中使用它,如下所示:

$.backstretch([
    "img/bg/1.jpg",
    "img/bg/2.jpg",
    "img/bg/3.jpg",
    "img/bg/4.jpg"
], {
     fade: 1000,
     duration: 8000
});
<script>
    $.backstretch([
        img_path + "/bg/1.jpg",
        img_path + "/bg/2.jpg",
        img_path + "/bg/3.jpg",
        img_path + "/bg/4.jpg"
    ], {
         fade: 1000,
         duration: 8000
    });
</script>

美元后推([
img_path+“/bg/1.jpg”,
img_path+“/bg/2.jpg”,
img_path+“/bg/3.jpg”,
img_path+“/bg/4.jpg”
], {
衰减:1000,
持续时间:8000
});

一种方法是设置JavaScript变量,然后在后续脚本中使用该变量。例如,在你的app/Layouts/default.ctp文件中,你可以有:

<script>
    var img_path = "<?php echo Configure::read('App.imageBaseUrl'); ?>";
</script>

var img_path=“”;
然后在脚本中使用它,如下所示:

$.backstretch([
    "img/bg/1.jpg",
    "img/bg/2.jpg",
    "img/bg/3.jpg",
    "img/bg/4.jpg"
], {
     fade: 1000,
     duration: 8000
});
<script>
    $.backstretch([
        img_path + "/bg/1.jpg",
        img_path + "/bg/2.jpg",
        img_path + "/bg/3.jpg",
        img_path + "/bg/4.jpg"
    ], {
         fade: 1000,
         duration: 8000
    });
</script>

美元后推([
img_path+“/bg/1.jpg”,
img_path+“/bg/2.jpg”,
img_path+“/bg/3.jpg”,
img_path+“/bg/4.jpg”
], {
衰减:1000,
持续时间:8000
});

在default.ctp中声明一个javascript变量

var IMAGE_HOST = "<?php echo $this->webroot.'/img/'; ?>";
var IMAGE_HOST=”“;
现在您也可以在javascript文件中使用它

<script>
$.backstretch([
    IMAGE_HOST + "bg/1.jpg",
    IMAGE_HOST + "bg/2.jpg",
    IMAGE_HOST + "bg/3.jpg",
    IMAGE_HOST + "bg/4.jpg"
], {
     fade: 1000,
     duration: 8000
});

美元后推([
IMAGE_HOST+“bg/1.jpg”,
IMAGE_HOST+“bg/2.jpg”,
IMAGE_HOST+“bg/3.jpg”,
IMAGE_HOST+“bg/4.jpg”
], {
衰减:1000,
持续时间:8000
});


希望对你有帮助

在default.ctp中声明一个javascript变量

var IMAGE_HOST = "<?php echo $this->webroot.'/img/'; ?>";
var IMAGE_HOST=”“;
现在您也可以在javascript文件中使用它

<script>
$.backstretch([
    IMAGE_HOST + "bg/1.jpg",
    IMAGE_HOST + "bg/2.jpg",
    IMAGE_HOST + "bg/3.jpg",
    IMAGE_HOST + "bg/4.jpg"
], {
     fade: 1000,
     duration: 8000
});

美元后推([
IMAGE_HOST+“bg/1.jpg”,
IMAGE_HOST+“bg/2.jpg”,
IMAGE_HOST+“bg/3.jpg”,
IMAGE_HOST+“bg/4.jpg”
], {
衰减:1000,
持续时间:8000
});


希望对你有帮助

我建议在布局中保存webroot路径,以便其范围保持全局

<div id="webroot" class="hide" data-url="<?php echo $this->webroot;?>"></div>

当您对webroot元素使用具有相同布局的不同操作时,它将保留正确的映像路径。

我建议在布局中保存webroot路径,以便其范围保持全局

<div id="webroot" class="hide" data-url="<?php echo $this->webroot;?>"></div>


当您对webroot元素使用具有相同布局的不同操作时,它将保留正确的图像路径。

嘿,谢谢,但这在javascript文件中不起作用。我需要类似的东西,只是我必须包含在javascript文件中。您可能需要将js部分复制到.ctp文件中才能创建它workable@Essteffan,我已经更新了我的答案,您也可以根据上述答案尝试第三个选项。我觉得这会解决你的问题。谢谢你,拉姆,我已经把你的回答和马丁的答案结合起来了,而且很有效。非常感谢,但这在javascript文件中不起作用。我需要类似的东西,只是我必须包含在javascript文件中。您可能需要将js部分复制到.ctp文件中才能创建它workable@Essteffan,我已经更新了我的答案,您也可以根据上述答案尝试第三个选项。我觉得这会解决你的问题。谢谢你,拉姆,我已经把你的回答和马丁的答案结合起来了,而且很有效。这是一个很好的解决方案,但我有一个小问题。当我在根目录下(索引)工作时,但当我在/users/signup上时,在链接中添加用户,如:name\u domain/users/img/bg/。。。它与Ram解决方案一起工作,如so var img_path=“”;感谢您的解决方案,它确实帮助了meI错过了
应用程序。imageBaseUrl
只返回相对URL。您需要将其与对站点基本URL的引用结合起来。类似于
$this->webroot的东西。Configure::read('App.imageBaseUrl')
。这是一个很好的解决方案,但我有一个小问题。当我在根目录下(索引)工作时,但当我在/users/signup上时,在链接中添加用户,如:name\u domain/users/img/bg/。。。它与Ram解决方案一起工作,如so var img_path=“”;感谢您的解决方案,它确实帮助了meI错过了
应用程序。imageBaseUrl
只返回相对URL。您需要将其与对站点基本URL的引用结合起来。类似于
$this->webroot的东西。Configure::read('App.imageBaseUrl')
。我已经做了,但如果有人有同样的问题,那是另一种方法。谢谢你,我提出这个建议是因为这是一个更通用的方法,我已经这样做了,但如果有人有同样的问题,那是另一种方法。谢谢你我之所以提出这个建议,是因为这是一种更通用的方法,这就是我解决这个问题的方法,谢谢你的回答:)太好了。。请别忘了接受我的回信。。这就是我解决这个问题的方法,谢谢你的回复:)太好了。。请别忘了接受我的回信。。享受