这是我的故事...
有一些问题。第一个也是最简单的是,我需要的图像位于文件系统中(并且在调试模式下运行时可以访问),但项目中不存在,因此未部署它。这是关于如何做到这一点的一个很好的解释:如何将现有目录树添加到 Visual Studio 中的项目? https://stackoverflow.com/questions/392473/how-do-i-add-an-existing-directory-tree-to-a-project-in-visual-studio
我的主要问题与捆绑有关(我从来没有太注意过)
事情是bundling在调试模式下不会发生(即当您在本地运行时)
捆绑does当您部署发行版本时会发生这种情况。
因此,在您部署应用程序之前,您的应用程序运行良好。
如果你想强制你的调试版本执行捆绑,那么你可以发现这些问题before部署(我将从现在开始执行此操作),将此行添加到您的RegisterBundles
public static void RegisterBundles(BundleCollection bundles)
BundleTable.EnableOptimizations = true;
相反,如果您已经尝试修复它而只想查看闪亮的 Web 应用程序正常运行,请在部署之前添加以下行:
BundleTable.EnableOptimizations = false;
这将完全禁用捆绑并使您部署的应用程序像调试应用程序一样工作。请记住,捆绑是为了提高性能,因此您可能会受到性能影响。
反正...........
我读了很多有关捆绑的内容,但找不到有关参数含义的具体信息ScriptBundle
,特别是第一个参数。
一段时间后我发现:
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
means:
拿走文件
- 〜/脚本/bootstrap.js
- 〜/脚本/respond.js
将它们捆绑起来(缩小并压缩成一个 GET),然后将它们放入实际的 Web 文件夹中~/bundles/bootstrap
所以不仅是〜/捆绑/引导程序 a key您用来识别捆绑包(在对捆绑包的调用和您的视图中),它也是一个物理路径在存储和调用包的 Web 服务器上
不知道这个东西是做什么用的,我接到了这样的电话:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css",
"~/Content/themes/base/all.css",
"~/Content/select2.css"
));
问题是:〜/内容/css是一个已经存在的实际物理文件夹,因此捆绑在某种程度上令人困惑。将第一个参数更改为不同的路径修复了它。
所以...如果你遇到这个问题,请做两件事:
我现在的问题是我只需要在捆绑包中以正确的顺序包含正确的样式表。
如果你捆绑了所有东西或者错过了 css 文件,甚至将它们放在错误的顺序,你的捆绑CSS将不会像你的调试CSS一样应用,你的页面将是一个畸形的怪物
例如我需要把我的 site.cssafterbootstrap.css 以便我的自定义网站样式将覆盖通用引导样式。我还需要使用 .IncludeFolder 来包含 jqueryui css 文件夹的全部内容
..我仍然有一个问题,即 jqueryui 样式引用子文件夹中的图像。 (所以仍然存在相对路径不正确的问题)