zend headScript() - > IE中的appendFile(Internet Explorer)

时间:2011-03-16 16:24:50

标签: zend-framework

两行剧本

  $this->headScript()->appendFile('/js/global.js', 'text/javascript');
  $this->headScript()->appendFile('http://zendbase/js/global.js', 'text/javascript');

Firefox通过两种方式运行脚本(绝对,根相对)

Internet Explorer仅运行第二种追加方法(绝对),即http。这不是一个好方法。 当我在浏览器中查看源时,我可以看到添加了以下行

<script type="text/javascript" src="/js/global.js"></script>

但是浏览器没有阅读。这真的超出了我的理解。它很奇怪。如何在包括IE在内的所有浏览器上使用文档根路径的第一行。 在视图助手中有任何设置吗?或其他什么?

我可以使用$ _Server变量使其绝对动态,但我不想使用绝对路径。

任何想法。在此先感谢:)

3 个答案:

答案 0 :(得分:0)

脚本的相对路径肯定会与IE一起使用 - 我已多次使用它...您使用的主机名是什么(例如www.example.com)?您的第二行代码不起作用,因为您没有有效的主机名 - http://zendbase将无法解析任何内容。 zendbase是变量吗?

答案 1 :(得分:0)

对于相对静态资产(图像,JS,CSS,SWF等),您应该始终使用baseUrl帮助程序,例如

$this->headScript()
     ->appendFile($this->baseUrl('/js/global.js'));

如果您在源代码中看到了正确的<script>标记,则问题是路径不正确(请参阅上面的baseUrl帮助程序)或您的JavaScript包含错误。

答案 2 :(得分:0)

最后我解决了问题

我删除了baseUrl(); ?&gt;“&gt;来自layout.phtml 并在application.ini中添加了以下行 resources.frontController.baseUrl =“”