【问题标题】:Cannot access JavaScript files inside View folder in ASP.NET MVC无法访问 ASP.NET MVC 中 View 文件夹中的 JavaScript 文件
【发布时间】:2018-08-02 20:18:34
【问题描述】:

我正在尝试在我的 mvc 项目中添加 AngularJS。

这是我的捆绑配置

  public static void RegisterBundles(BundleCollection bundles) {

           bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/angularjs").Include(
                       "~/Scripts/angular.js",
                        "~/Scripts/angular-ui-router.js"));

               bundles.Add(new ScriptBundle("~/bundles/appscripts").Include(
                   "~/Areas/app.module.js",
                   "~/Areas/app.component.js",
                   "~/Areas/app.routes.js",

     bundles.Add(new ScriptBundle("~/bundles/appcomponents").Include(
      "~/Areas/Home/Views/Default/default.component.js"));
        }

_Layout.cshtml

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/angularjs")
    @Scripts.Render("~/bundles/appscripts")
    @Scripts.Render("~/bundles/appcomponents")
    @RenderSection("scripts", required: false)

我可以添加~/bundles/jquery~/bundles/angularjs~/bundles/appscripts

但我无法添加 ~/bundles/appcomponents,并且我收到此脚本的 404 错误。

我也试过直接在_layout.cshtml中添加脚本文件

<script src="~/Areas/Home/Views/Default/default.component.js"></script>

我遇到了同样的错误。

我不知道为什么我不能从 Views 文件夹中添加任何脚本。

谁能告诉我如何在捆绑配置中添加这个脚本文件?

【问题讨论】:

  • 你能把你的RouteConfig里的东西加进去吗?
  • public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
  • @YogendharReddy 使用位于标签列表下方的edit 按钮将其添加到您的问题中。注释并不真正适用于大块代码。

标签: javascript asp.net angularjs asp.net-mvc asp.net-bundling


【解决方案1】:

出于安全原因,View 文件夹内的web.config 会阻止从浏览器访问文件。但是,您可以将其配置为允许 -

<?xml version="1.0"?>

<configuration>
  <configSections>
  ...        
  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*.js" verb="*" 
          preCondition="integratedMode" 
          type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
   ...
</configuration>

Here 是我的回答类似于这个问题,但它是关于 cshtml 文件的。

【讨论】:

    猜你喜欢
    • 2014-12-09
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2016-12-18
    • 2014-09-26
    相关资源
    最近更新 更多