如何将prototype.js URL更改为Google托管版本?

时间:2012-01-16 04:05:03

标签: magento

我注意到Magento使用prototype.js:

<script type="text/javascript\" src="http://www.example.com/js/prototype/prototype.js"></script>

我的问题是我如何将网址更改为缩小的原型.js的Google托管版本。

我尝试更改page.xml中的网址但不起作用,因为网址始终以http://www.example.com开头

知道如何为此指定绝对URL吗?

非常感谢!

4 个答案:

答案 0 :(得分:5)

addJsaddCSS等操作方法专为本地文件设计。您无法使用它们将外部URL上的文件添加到页面。相反,您需要将URL直接添加到Magento的头模板中。

您可以通过复制

上的基本头模板来完成此操作
app/design/frontend/base/default/template/page/html/head.phtml

到主题的模板文件夹

应用程序/设计/前端/缺省的/你的主题/模板/页/ HTML / head.phtml

如果查看该模板,您将看到用于呈现所有Magento HTML页面的head元素的HTML和PHP模板代码。

<meta http-equiv="Content-Type" content="<?php echo $this->getContentType() ?>" />
<title><?php echo $this->getTitle() ?></title>
<meta name="description" content="<?php echo htmlspecialchars($this->getDescription()) ?>" />
<meta name="keywords" content="<?php echo htmlspecialchars($this->getKeywords()) ?>" />
<meta name="robots" content="<?php echo htmlspecialchars($this->getRobots()) ?>" />
<link rel="icon" href="<?php echo $this->getFaviconFile(); ?>" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo $this->getFaviconFile(); ?>" type="image/x-icon" />
<!--[if lt IE 7]>
<script type="text/javascript">
//<![CDATA[
    var BLANK_URL = '<?php echo $this->helper('core/js')->getJsUrl('blank.html') ?>';
    var BLANK_IMG = '<?php echo $this->helper('core/js')->getJsUrl('spacer.gif') ?>';
//]]>
</script>
<![endif]-->
<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
<?php echo $this->getIncludes() ?>

您只需将HTML标记添加到此文件即可添加所需的任何其他脚本标记。不要忘记使用removeItem方法来确保不呈现本地prototype.js。

如果你想要真正想要的,而不是编辑模板,你可以使用Layout XML来添加类似这样的新脚本

    <default>
        <reference name="head">
            <block type="core/text" name="cdn_prototype">
                <action method="setText">
                    <text><![CDATA[<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>]]></text>
                </action>
            </block>
        </reference>
    </default>

(这里的建议是1.6.1特定的,但应该适用于大多数(如果不是全部)Magento版本)

答案 1 :(得分:1)

您可以在有用的Inchoo博客(link)中找到用于此目的的扩展程序。

如果你仔细阅读这篇文章,它将有助于理解Magento使用的一些Block和布局架构。

答案 2 :(得分:0)

This Magento extension允许通过布局XML文件包含外部JS和CSS文件。 安装扩展程序后,将以下行放在page.xml

<action method="addItem"><type>absolute_js</type><name>http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js</name>

不要忘记使用removeItem方法来确保不呈现本地prototype.js。

答案 3 :(得分:-6)

直接链接到源:

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>

或通过Google API:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("prototype", "1.6.0.2");</script>

在询问

之前阅读manual,在线搜索