【问题标题】:Old version of bootstrap loaded by JoomlaJoomla 加载的旧版引导程序
【发布时间】:2013-05-05 12:23:35
【问题描述】:

我正在开发一个新网站,为此我安装了最新版本的 Joomla,3.1.1。 我使用 Twitter Bootstrap 从头开始​​创建了一个模板。我下载了最新版本的Bootstrap,并在我的模板的index.php中加载了相关的javascript。

在我的一个页面上创建轮播时,我遇到了轮播指示器无法反映当前图片的错误。通过Firebug调查,发现页面加载的bootstrap.min.js不是我放在/template/xxx/js中的,而是/media/jui/js中的另一个,是Joomla自己加载的. Joomla 加载的是旧版本。

所以我将最新版本的 bootstrap.min.js 复制到 /media/jui/js,我的轮播现在可以正常工作了。但是(总是有一个但是),我现在有一些菜单在站点的管理端不起作用,使用默认的 Isis 模板。如果我放回旧版本的 bootstrap.min.js,它们会再次工作......

我想做以下两件事之一:

  • 想办法让 Joomla 为网站的管理员端和用户端加载不同版本的 bootstrap.min.js
  • 找到一种方法来覆盖 Joomla 从我的模板 index.php 加载的 javascript

对如何实现其中一个或另一个有任何想法吗?

谢谢, 帕特里克

【问题讨论】:

  • 请提供包含新引导文件的站点链接;)

标签: javascript twitter-bootstrap joomla


【解决方案1】:

Joomla 附带了一个稍作修改的 Bootstrap 版本,因此您无法将其更换为较新的版本。

最好的办法是为 Joomla 附带的 Bootstrap 版本找到该轮播脚本的版本。否则你会在任何更新时遇到问题。

【讨论】:

  • 你说得对,替换Joomla使用的js文件不是个好主意。我已经放弃了这个想法。
【解决方案2】:

我找到了一个似乎可以接受的解决方案:我在模板的 index.php 中插入了 <script src=" 行,以加载最新版本的引导模板。 结果,两个版本的引导 javascript 都已加载,但使用的是最近加载的,并且我的轮播正在工作。

我不认为这会对 Joomla 中的其他模块造成问题,因为我只使用基本模块或我自己创建的新模块。无论如何,Joomla 的菜单模块与 bootstrap navbar 不兼容,我不得不添加几行 jQuery 来添加所需的类。

Rgds, 帕特里克

【讨论】:

    【解决方案3】:

    从您的模板的 index.php 中删除 JHtml::_('bootstrap.framework'); 并手动添加您想要的任何版本的引导程序,没什么大不了的....除非您必须更改整个模板标记...

    【讨论】:

      【解决方案4】:

      您可以通过将文件放在templates/<your_template>/js/jui/bootstrap.min.js 来覆盖媒体。但正如 nibra 所警告的那样,您需要在 JS 中进行一些修改,以保持工作正常。此外,您将使用的 JS 版本不适用于我们目前在核心中发布的内容。

      因此,可以干净利落地执行此操作,但存在相当大的风险。

      【讨论】:

        猜你喜欢
        • 2019-07-20
        • 2021-06-28
        • 2014-10-03
        • 1970-01-01
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        • 2016-10-25
        • 1970-01-01
        相关资源
        最近更新 更多