我希望有人能抓到我错过的东西。我将我的javascript文件捆绑在BundleConfig.cs中,它位于App_Data
这样的文件夹中
bundles.Add(new ScriptBundle("~/bundles/customScript").Include(
"~/Views/Summary/storedata.js",
"~/Views/Summary/UploadData.js",
"~/Views/Summary/manipulateData.js"));
当我加载页面时,它说无法找到资源。我仔细检查,路径是正确的。似乎无法加载View中的资源。我有一些来自Scripts文件夹中的库的脚本,可以加载
bundles.Add(new ScriptBundle("~/bundles/frameworkScripts").Include(
...
"~/Scripts/jquery.browser.min.js",
"~/Scripts/jquery.inputmask.bundle.js",
....
有什么我忘记检查的吗?也许帮助我指出正确的方向?
更新
根据要求我在我的_Layout.cshtml中加载了这个包,它位于共享文件夹中,该文件夹位于Views文件夹中
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<!-- Meta tag used for the finger gesture needed for swiping -->
<meta name="viewport" content="minimum-scale=1.0, maximum-scale=1.0, width=device-width, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
....
@Scripts.Render("~/bundles/frameworkScripts")
....
@Scripts.Render("~/bundles/customScript")
我得到的错误是在Web控制台中,这只是错误之一,另一个是相同的错误差异。资源
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:53228/Views/Summary/manipulateData.js
答案 0 :(得分:0)
在标准的ASP.Net MVC项目中,有2个Web.config文件(一个在根目录中,一个在Views Diectory中)。在第二个Web.config中,您将找到以下内容:
<httpHandlers>
<add path="*" verb="*"
type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
这会阻止服务器直接从Views文件夹或子文件夹中提供任何文件。您可以使用以下代码替换它并仍然是安全的:
<httpHandlers>
<add path="*.aspx" verb="*"
type="System.Web.HttpNotFoundHandler"/>
<add path="*.master" verb="*"
type="System.Web.HttpNotFoundHandler"/>
<add path="*.ascx" verb="*"
type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
答案 1 :(得分:0)
这与ASP.NET MVC中无法通过URL访问Views
目录这一事实有关。因此,您必须通过控制器才能进入视图。这就是路由的工作原理。
出于这个原因,有一个Scripts
目录(和Content
目录用于css,图像等)。如果每个视图有许多脚本,请为Scripts
下的每个视图创建一个目录。