MVC js脚本打破\ Home \ Index但不打开\ Home

时间:2017-03-30 13:58:11

标签: javascript twitter-bootstrap model-view-controller

我正在使用购买的bootstrap模板,其中包含一些添加的滑块和其他好东西,用于我的MVC网站。

我已经为js更改了我的bundle配置:

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/js/core.min.js",
                  "~/js/bootstrap.min.js",
                  "~/js/script.js"));

我已经为css更改了我的bundle配置:

        // This includes the bootstrap for the current template
        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/css/style.css"));

这需要将JS和CSS放在正确的位置....相对路径和所有。然而,在自定义script.js文件中有一些轻微的问题...有一些js也加载OTHER js文件。似乎当MVC路径改变时,js包含的加载不起作用。因此,当路径为\ Home时,正确加载。当路径为\ Home \ Index(本质上是同一页面)时,js无法正确加载。

以下是我认为是问题的js示例:

var o = $(".swiper-slider");
if (o.length) {
    include('js/jquery.swiper.min.js');

在我看来,我已经在处理图像等的相对路径,如下所示:

        <div data-slide-bg="@Url.Content("~/images/header-4.jpg")"  
             class="swiper-slide">
            <div class="swiper-slide-caption"></div>
        </div>

要修复js包含,我可以在前面放一条斜线以强制路径回到root ...就像这样:

var o = $(".swiper-slider");
if (o.length) {
    include('/js/jquery.swiper.min.js');

但是,我认为这附带了一些问题......

有关处理此问题的最佳方法的任何想法吗?

我认为标准的bootstrap.js和jquery文件可以很好地处理这个问题......

更新

现在我在加载脚本文件的js函数中添加了斜杠。 (见下文)它有效,但我仍然想知道这是否是最好的方法。

function include(scriptUrl) {
    document.write('<script src="' + '/' + scriptUrl + '"></script>');
}

1 个答案:

答案 0 :(得分:0)

所以这可以回答......

现在我在加载脚本文件的js函数中添加了斜杠。 (见下文)它有效,但我仍然想知道这是否是最佳方式。

function include(scriptUrl) {
    document.write('<script src="' + '/' + scriptUrl + '"></script>');
}