MVC 4 - 脚本/Css 渲染问题

Posted

技术标签:

【中文标题】MVC 4 - 脚本/Css 渲染问题【英文标题】:MVC 4 - Script/Css Rendering Problems 【发布时间】:2014-01-16 17:49:58 【问题描述】:

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

GET http://*:54559/Scripts/ 403(禁止)

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

未捕获的引用错误:$ 未定义

在我的 _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>

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

有什么想法吗?

【问题讨论】:

你在BundleConfig.cs中添加脚本了吗? 没有任何捆绑包 点击 Chris 回答中的链接。您需要创建一个包,然后@Scripts.Render 将包含那些添加到包中的脚本。 【参考方案1】:

~/Content/css/~/Scripts/ 不是文件路径。它们是捆绑包名称,因此如果您没有捆绑包文件,请按照以下步骤操作:

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

 public class BundleConfig
 

 

像这样添加RegisterBundles 方法:

public static void RegisterBundles(BundleCollection bundles)



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

 bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

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

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

BundleConfig.RegisterBundles(BundleTable.Bundles);

然后您可以使用以下方式渲染您的 Bundle:

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

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

bundles.Add(new StyleBundle("~/Content/css")
.Include("~/Content/site.css",
         "~/Content/sample.css",
         "~/Content/sample2.css"));

PS:你也可以看看这个关于使用 Bundles 的好处的问题:Usage of the ASP.NET MVC4 jquery/javascript bundles

【讨论】:

【参考方案2】:

MVC 正在寻找 Bundles,这是您要在您的站点中使用的脚本和 CSS 文件的列表。

App_Start\BundleConfig.cs查看您的捆绑注册文件

确保您的捆绑包名称与您传递给 ScriptsStyles 的内容相对应。

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

【讨论】:

啊,我什至没有 bundleconfig.cs 文件 现在您有机会了解捆绑包,那么 :) 它们是各种很棒的酱料!

以上是关于MVC 4 - 脚本/Css 渲染问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 4 Bundles和显示模式

ASP.NET MVC 4 Bundles和显示模式

参考 Razor 渲染脚本

关于ASP.NET MVC部分视图渲染问题。

浏览器是如何渲染页面的?

在 React 组件中渲染脚本标签