MVC 4 - 脚本/ Css渲染问题

LmC*_*LmC 2 css c# asp.net-mvc jquery razor

我在浏览器控制台中收到以下错误消息:

GET http://*:54559/Scripts/403(Forbidden)

http:// :54559/Content/css / 400(错误请求)

未捕获的ReferenceError:$未定义

在我的_Layout.shtml中,我使用以下代码尝试包含css/bootstrap.

@Styles.Render("~/Content/css/*")

<!-- JavaScript -->
@Scripts.Render("~/Scripts/")
@RenderSection("scripts", required: false)

<script>
    // Activates the Carousel
    $('.carousel').carousel({
        interval: 5000
    })
</script>
Run Code Online (Sandbox Code Playgroud)

文件路径看起来不错,因为在我的项目中css位于"Content/css",脚本只是顶层的一个名为"Scripts"的文件夹

有任何想法吗?

Sel*_*enç 6

~/Content/css/并且~/Scripts/不是文件路径.它们是包名称,因此如果您没有Bundle文件,请按照下列步骤操作:

在您的App_Start文件夹中添加一个BundleConfig类:

 public class BundleConfig
 {

 }
Run Code Online (Sandbox Code Playgroud)

添加如下RegisterBundles方法:

public static void RegisterBundles(BundleCollection bundles)
{

}
Run Code Online (Sandbox Code Playgroud)

然后你可以添加一个包,将这段代码写入你的方法:

 bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Run Code Online (Sandbox Code Playgroud)

~/Content/css是您的Bundle Name,~/Content/site.css是您的Css文件路径.如果您的css文件位于不同的路径,请更改它.

现在还有一个步骤,打开Global.asax文件并将此代码添加到您的Application_Start:

BundleConfig.RegisterBundles(BundleTable.Bundles);
Run Code Online (Sandbox Code Playgroud)

然后你可以渲染你的Bundle:

@Styles.Render("~/Content/css")
Run Code Online (Sandbox Code Playgroud)

此外,您还可以使用一个包渲染多个文件,为此,请在此处添加所有文件路径,如下所示:

bundles.Add(new StyleBundle("~/Content/css")
.Include("~/Content/site.css",
         "~/Content/sample.css",
         "~/Content/sample2.css"));
Run Code Online (Sandbox Code Playgroud)

PS:你也可以看一下这个关于使用Bundle的好处的问题:ASP.NET MVC4 jquery/javascript包的用法