捆绑不适用于子文件夹中的网页

时间:2017-07-07 15:24:18

标签: asp.net bundles

我使用asp.net webforms的vs2015项目模板创建了一个asp.net webforms应用程序。 现在我想使用捆绑,它适用于根级别的所有页面。但是通过模板,所有与用户相关的页面(登录,注册,重置密码等)都位于account-sub文件夹中(例如〜/ account / Login.aspx)

我在BundleConfig.cs中创建了一个类似

的包
   bundles.Add(new ScriptBundle("~/bundles/JQWidgets").Include(
      "~/jqwidgets/jqxcore.js",
      "~/jqwidgets/jqxdata.js",
      "~/jqwidgets/jqxbuttons.js",
      "~/jqwidgets/jqxscrollbar.js",
      "~/jqwidgets/jqxmenu.js",...

在使用捆绑之前,我已经必须在〜/ account / register.aspx中包含脚本,如

<script src="../jqwidgets/jqxwindow.js" type="text/javascript"></script>
<script src="../jqwidgets/jqxpasswordinput.js" type="text/javascript">
</script>
<script src="../jqwidgets/jqxtooltip.js" type="text/javascript"></script>
<script src="../jqwidgets/jqxvalidator.js" type="text/javascript"></script>
<script src="../jqwidgets/jqxcheckbox.js" type="text/javascript"></script>

表示使用相对路径而不是绝对路径。现在我想通过使用主页上包含的包来消除这些脚本标记,但是那些脚本不再被识别(&#34; $&#34;未定义)

尝试使用相对路径创建包会导致错误(页面不会加载)。

如何对位于子文件夹中的页面使用捆绑(在母版页或子文件夹中的页面上)?

提示:我使用的是OAuth2.0身份验证,除了登录进程所需的页面(登录,注册,忘记密码等)之外,匿名用户都拒绝了所有页面。这可能是捆绑文件无法找到的原因吗?

2 个答案:

答案 0 :(得分:0)

另一个有趣的事情:它只在IE中不起作用,但它在Chrome中有效。

为了让它在IE中运行,我不得不将以下内容添加到web.config:

  <location path="bundles">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

答案 1 :(得分:0)

我在子文件夹中托管的应用程序存在类似问题。我的工作方式是从布局模板的此调用中删除〜:@ Scripts.Render(“ / bundles / jquery”)。当我有@ Scripts.Render(“〜/ bundles / jquery”)时,它将子文件夹放在/ bundle的前面,就像src =“ / subfolder / bundles / jquery”一样,而没有〜它变成:src =“ / bundles / jquery”起作用了。希望对您有所帮助。