【发布时间】:2023-03-11 12:59:01
【问题描述】:
我有一个 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>
【问题讨论】:
-
为什么要部署 /App_Start/BundleConfig.cs?它是存在于您的 MVC 项目 dll 中的已编译代码,其构建操作为编译,复制到输出目录设置为不复制。
-
你的BundleConfig中的CSS和JS路径不对,可以分享一下BundleConfig代码吗?
-
@Aram,我更新了,你。
-
您的捆绑包名称是否与物理文件夹相同?换句话说,您在
Content下是否有jquery文件夹?如果是这样,请重命名捆绑包,以免它们与文件夹名称冲突。
标签: c# asp.net-mvc deployment