6

如何让 JavaScript 捆绑从另一个文件夹(脚本文件夹除外)工作。如果我这样做:

bundles.Add(new ScriptBundle("~/bundles/search").Include("~/Views/Search/*.js"));

浏览器告诉我找不到 javascript 文件。是否可以这样做或者我所有的脚本都必须在 Scripts 文件夹中?

基本上我希望我的 Javascript 包含在我的 View 子文件夹中

4

3 回答 3

3

您需要根据此答案更改文件夹: web.configASP.NET MVC 中,如何从我的视图文件夹中加载脚本?Views

Ashley Lee 的好例子:

<system.webServer>
  <handlers>
    <add name="JavascriptViewHandler" path="*.js" verb="*"
        preCondition="integratedMode" type="System.Web.StaticFileHandler" />
    <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*"
      preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
</system.webServer>
于 2014-12-16T07:06:10.020 回答
1

由于您特别希望只包含 javascript 文件,因此~/Views/web.config通过添加“JavascriptViewHandler”部分对您的文件进行以下更改。

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

这将保留所有当前对非 JavaScript 文件的阻塞。

于 2014-12-17T04:21:40.010 回答
0

我不知道我是否正确理解了您的问题,但是如果您想使用视图中任何文件夹中的脚本文件,或者最好在其布局中使用脚本文件,您可以在<head>您的部分中添加以下标签View_Layout.cshtml

<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>

您可以提及脚本文件的完整路径,而不是~/Scripts/jquery-ui.min.js

于 2014-12-16T08:34:11.027 回答