在 VS 中发布网站时@import“theme.css”不起作用

2024-02-03

我有一个网站,它依赖于 jquery ui theme.css 的一些 css 样式。

当我在本地运行我的项目时,这工作正常,但是当我发布和部署时,这些特定的样式不会被选择。

例如,当我在本地检查对话框关闭按钮时,它会显示标准的十字图像,但在发布的网站上,它会显示“关闭”并且没有 theme.css 中的样式

我已经检查过,theme.css 包含在正常位置的目录结构中。

当我查看最小化的 css 文件时,它开始 @import"base.css";@import"theme.css";它来自 Content/themes/base/all.css,但显然它没有读取这些。

我需要做些什么才能将这些内容正确地包含在已发布的网站上吗?

Thanks

编辑:显然我可以在我的包中单独引用所有 jqueryui css 文件,但使用 @include 指令会很有用。


这是我的故事...

有一些问题。第一个也是最简单的是,我需要的图像位于文件系统中(并且在调试模式下运行时可以访问),但项目中不存在,因此未部署它。这是关于如何做到这一点的一个很好的解释:如何将现有目录树添加到 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是一个已经存在的实际物理文件夹,因此捆绑在某种程度上令人困惑。将第一个参数更改为不同的路径修复了它。

所以...如果你遇到这个问题,请做两件事:

  • 确保所有 StyleBundle 键(StyleBundle 调用中的第一个字符串)以~/bundles(或一些适当独特的东西),只是为了确保它们不可能引用真实的文件夹

  • 我还确保我引用的文件都不是 .min 文件。不确定这会产生什么影响,但我在另一个 stackexchange 答案中找到了它,所以我还是这么做了。

我现在的问题是我只需要在捆绑包中以正确的顺序包含正确的样式表。

如果你捆绑了所有东西或者错过了 css 文件,甚至将它们放在错误的顺序,你的捆绑CSS将不会像你的调试CSS一样应用,你的页面将是一个畸形的怪物

例如我需要把我的 site.cssafterbootstrap.css 以便我的自定义网站样式将覆盖通用引导样式。我还需要使用 .IncludeFolder 来包含 jqueryui css 文件夹的全部内容

..我仍然有一个问题,即 jqueryui 样式引用子文件夹中的图像。 (所以仍然存在相对路径不正确的问题)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VS 中发布网站时@import“theme.css”不起作用 的相关文章

随机推荐