Как изменить URL файла prototype.js на версию, размещенную в Google? - PullRequest
1 голос
/ 16 января 2012

Я заметил, что Magento использует prototype.js:

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

Мой вопрос заключается в том, как я могу изменить URL-адрес для версии prototype.js, размещенной в Google, которая минимизирована.

Я пыталсяизменить URL-адрес в page.xml, но он не работает, поскольку URL-адрес всегда начинается с http://www.example.com

Есть идеи, как указать абсолютный URL-адрес для этого?

Большое спасибо!

Ответы [ 4 ]

5 голосов
/ 16 января 2012

Методы действий addJs, addCSS и т. Д. Специально разработаны для локальных файлов.Вы не можете использовать их для добавления файлов по внешним URL-адресам на страницу.Вместо этого вам нужно добавить URL-адреса непосредственно в шаблон головы Magento.

Вы можете сделать это, скопировав шаблон base head в

app/design/frontend/base/default/template/page/html/head.phtml

.папка с шаблонами темы

app / design / frontend / default / your-theme / template / page / html / head.phtml

Если вы посмотрите на этот шаблон, вы увидите HTML иКод шаблона PHP, используемый для визуализации элемента head всех HTML-страниц Magento.

<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 голос
/ 16 января 2012

Расширение для этой цели вы найдете в очень полезном блоге Inchoo ( ссылка ).

Если вы прочитаете этот пост, это поможет понять некоторые из блоков и архитектуры компоновки, которые Magento также использует.

0 голосов
/ 16 января 2012

Это расширение Magento позволяет включать внешние файлы JS и CSS через файлы макета XML. После установки расширения введите следующую строку в 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 НЕ рендерится.

0 голосов
/ 16 января 2012

Ссылка на источник напрямую:

<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>

Прочтите руководство , ищите онлайн, прежде чем спрашивать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...