簡體   English   中英

MVC網站的已部署版本不起作用

[英]Deployed Version of MVC Site Not Working

我有一個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>

好的,首先讓我們看一下bundle的配置,你可以發布代碼,對於CSS,它應該看起來像這樣

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

然后,您需要確認發布此文件夾路徑時是否存在folderwherecssis / mycss.css

在您看來,您是使用這樣的一段代碼訪問該捆綁包的

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

好的,根據您發布的內容,您可以使我幽默並執行以下操作,然后將捆綁包重命名為這樣

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

等等。因此,擺脫Content並將其更改為Styles並測試是否可行,顯然您也必須更改渲染以反映此更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM