MVC 站点的部署版本无法正常工作

问题描述 投票:0回答:1

我有一个 MVC Web 应用程序 (.csproj),它与解决方案中的其他项目一起在 Visual Studio 中运行良好。 但是,当我部署它时,无论是使用 Subversion 和 TeamCity,还是使用 Visual Studio 的发布向导(到本地文件夹),它都会成功构建,但无法正常运行。

例如,我注意到一些 CSS 文件没有加载到页面中。 查看 Chrome 开发人员工具和 Fiddler 后,发现甚至没有发出请求来请求特定文件。 在可用的站点版本中(即在 Visual Studio 中),从 /App_Start/BundleConfig.cs 请求 css 文件。 事实证明,整个文件夹甚至都没有被部署。 手动复制该文件夹也没有解决问题。

发生什么事了?

谢谢,

更新

这是我的 BundleConfig.cs:

using System.Web.Optimization;

namespace MVCApp
{
    public class BundleConfig
    {
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            /******************************************* SCRIPTS *******************************************/
            bundles.Add(new ScriptBundle("~/Scripts/jquery").Include(
                        "~/Scripts/jquery-2.1.3.min.js"
                        ));

            bundles.Add(new ScriptBundle("~/Scripts/google").Include(
                        "~/Scripts/jsapi.js"));

            bundles.Add(new ScriptBundle("~/Scripts/easyquery").Include(
                        "~/Scripts/jquery-ui.js",
                        "~/Scripts/EasyQuery/eq.all.min.js",
                        "~/Scripts/EasyQuery/eq.view.basic.js"));

            bundles.Add(new ScriptBundle("~/Scripts/validate").Include(
                        "~/Scripts/jquery.validate.unobtrusive.min.js",
                        "~/Scripts/jquery.validate.min.js"));

            bundles.Add(new ScriptBundle("~/Scripts/kendo").Include(
                //"~/Scripts/Kendo/jquery.min.js",
                        "~/Scripts/Kendo/kendo.all.min.js",
                        "~/Scripts/Kendo/kendo.aspnetmvc.min.js"));

            bundles.Add(new ScriptBundle("~/Scripts/bootstrap").Include(
                      "~/Scripts/bootstrap.min.js",
                      "~/Scripts/respond.min.js"));

            //// Use the development version of Modernizr to develop with and learn from. Then, when you're
            //// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-2.8.3.js"));

            /******************************************* STYLES *******************************************/
            bundles.Add(new StyleBundle("~/Content/css").Include(
                        "~/Content/Site.css"));

            bundles.Add(new StyleBundle("~/Content/jquery").Include(
                        "~/Content/jquery-ui.css"));

            bundles.Add(new StyleBundle("~/Content/easyquery").Include(
                        "~/Content/EasyQuery/easyquery.css",
                        "~/Content/EasyQuery/eqview.css",
                        "~/Content/bootstrap.min.css"));

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

            bundles.Add(new StyleBundle("~/Content/kendo").Include(
                      "~/Content/Kendo/kendo.bootstrap.min.css",
                      "~/Content/Kendo/kendo.common-bootstrap.min.css"));

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

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

            bundles.IgnoreList.Clear();
        }
    }
}

这是我的观点:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title</title>

    @*** SCRIPTS ***@
    @Scripts.Render("~/Scripts/jquery")
    @Scripts.Render("~/Scripts/kendo")
    @Scripts.Render("~/Scripts/validate")
    @Scripts.Render("~/Scripts/google")
    @Scripts.Render("~/Scripts/easyquery")
    @Scripts.Render("~/Scripts/bootstrap")

    @*** STYLES ***@
    @Styles.Render("~/Content/css")
    @Styles.Render("~/Content/jquery")
    @Styles.Render("~/Content/easyquery")
    @Styles.Render("~/Content/kendo")
    @Styles.Render("~/Content/fonts")
</head>
c# asp.net-mvc deployment
1个回答
0
投票

首先让我们看看捆绑配置,你可以发布该代码吗,它对于 CSS 来说应该是这样的

bundles.add(new StyleBundle("~/css/mycss").Include(
    "~/folderwherecssis/mycss.css"));

那么你需要确认当你发布这个文件夹路径时存在folderwherecsis/mycss.css

在您看来,您是否使用这样的一段代码来访问捆绑包

@Style.Render("~/css/mycss")

好的,根据您发布的内容,您可以幽默一下我并执行以下操作并将您的捆绑包重命名为这样

bundles.Add(new StyleBundle("~/Styles/css")

等等.... 因此,删除内容并将其更改为样式并测试这是否有效,显然您还必须更改渲染以反映此更改。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.