2

我们正在使用 Silverstripe 开发一些 Web 应用程序,并希望使用最新版本的 jQuery。

Sapphire,运行 Silverstripe 的框架需要使用以下代码的(旧)jQuery 版本:

Requirements(SAPPHIRE_DIR .'/thirdparty/jquery/jquery.js'); 

这包括所有生成的网页上的此文件的链接。我们可以在 Page_Controller 类中使用框架外部的以下代码阻止此要求:

Requirements::block(SAPPHIRE_DIR .'/thirdparty/jquery/jquery.js'); 

这会从所有生成的网页中删除包含,但也会从 Silverstripe CMS 中删除包含 - 导致它中断。

(几乎)简单的解决方法是让我们将我们的 jQuery 版本复制到 /sapphire/thirdparty/jquery/jquery.js 中——但我们正在努力保持 Sapphire 框架不受影响并保持清洁以备将来升级。

这也会产生问题,因为使用本机 Silverstripe 要求意味着 jQuery 几乎在页面上最后加载 - 破坏了我们的一些功能。

有没有办法阻止在网站上加载 Silverstripe 的 jQuery,但在 CMS 中允许它?

4

1 回答 1

4

SilverStripe 在您的页面中包含 jQuery,因为您的文件中有$SilverStripeNavigator或者.ss您正在使用的模块需要它。此外,添加Requirements::block();到不Page_Controller应该影响 CMS。

于 2011-10-05T00:14:33.273 回答