两行脚本
$this->headScript()->appendFile('/js/global.js', 'text/javascript');
$this->headScript()->appendFile('http://zendbase/js/global.js', 'text/javascript');Firefox以两种方式运行脚本(绝对方式,相对根方式)
Internet Explorer只运行append(绝对)的第二个方法,即http。这不是一个好方法。当我在浏览器中查看源代码时,可以看到添加了以下行
<script type="text/javascript" src="/js/global.js"></script>但是浏览器没有读取。这真的超出了我的理解。这很奇怪。如何使第一行在所有浏览器(包括IE )上使用文档根路径。视图帮助器中是否有任何设置?还是别的什么?
我可以使用$_Server变量动态地使其成为绝对路径,但我不想使用绝对路径。
任何想法。提前感谢:)
发布于 2011-05-26 16:14:05
最后我解决了这个问题
我从layout.phtml中删除了baseUrl();?>“/>,并在application.ini resources.frontController.baseUrl = "”中添加了以下行
发布于 2011-03-17 06:47:42
脚本的相对路径肯定会在IE中工作-我已经用过很多次了……您使用的主机名是什么(例如www.example.com)?您的第二行代码应该不起作用,因为您没有有效的主机名- http://zendbase不会解析任何内容。zendbase是一个变量吗?
发布于 2011-03-17 08:31:00
对于相对静态资源(图像、JS、CSS、SWF等),您应该始终使用baseUrl助手,例如
$this->headScript()
->appendFile($this->baseUrl('/js/global.js'));如果你可以在源代码中看到正确的<script>标签,那么问题要么是路径不正确(参见上面的baseUrl助手),要么是你的JavaScript包含错误。
https://stackoverflow.com/questions/5328368
复制相似问题