使用文件位置进行样式绑定

本文关键字:样式 绑定 位置 文件 | 更新日期: 2023-09-27 18:00:55

我想在代码中捆绑三个css文件。其中一个是用于我的网络字体,我使用"url"。但当我运行应用程序浏览器时,无法找到这些文件。

这是我的css文件:

@font-face {
    font-family: 'neuropol';
    src: url('../Files/Font/neuropol_x_free-webfont.eot');
    src: url('../Files/Font/neuropol_x_free-webfont.eot?#iefix') format('embedded-opentype'),
         url('../Files/Font/neuropol_x_free-webfont.woff') format('woff'),
         url('../Files/Font/neuropol_x_free-webfont.ttf') format('truetype'),
         url('../Files/Font/neuropol_x_free-webfont.svg#neuropol_x_freeregular') format('svg');
    font-weight: normal;
    font-style: normal;
}  

这是我的捆绑包代码:

bundles.Add(new StyleBundle("~/bundles/styles/base").Include("~/Content/Styles/style.css", "~/Content/Styles/normalize.css", "~/Content/Styles/webfont.css"));

有人能帮我解决这个问题吗?

使用文件位置进行样式绑定

当CSS定义中存在src URL时,浏览器将检查相对于下载CSS文件的位置的路径。在这种情况下,这意味着它在~/bundles/Files/Font/...而不是~/Content/Files/Font/...中查找src文件。

尝试使捆绑包名称与相对位置相匹配。

bundles.Add(new StyleBundle("~/Content/Styles/base-bundle.css").Include("~/Content/Styles/style.css", "~/Content/Styles/normalize.css", "~/Content/Styles/webfont.css"));

看看这个链接

基本上,您可以添加一个转换,将css文件中的url转换为有效的url。

您可以通过将Bundles配置更改为以下内容来实现这一点:

bundles.Add(
new StyleBundle("~/Content/Styles/base-bundle.css")
.Include("~/Content/Styles/style.css", new CssRewriteUrlTransform())
.Include("~/Content/Styles/normalize.css", new CssRewriteUrlTransform())
.Include("~/Content/Styles/webfont.css", new CssRewriteUrlTransform())
);

您可以将其更改为类似的App_Start>BundleConfig.cs

     bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                            "~/Content/themes/base/jquery.ui.core.css",
                            "~/Content/themes/base/jquery.ui.resizable.css",
                            "~/Content/themes/base/jquery.ui.selectable.css",
                            "~/Content/themes/base/jquery.ui.accordion.css",
                            "~/Content/themes/base/jquery.ui.autocomplete.css",
                            "~/Content/themes/base/jquery.ui.button.css",
                            "~/Content/themes/base/jquery.ui.dialog.css",
                            "~/Content/themes/base/jquery.ui.slider.css",
                            "~/Content/themes/base/jquery.ui.tabs.css",
                            "~/Content/themes/base/jquery.ui.datepicker.css",
                            "~/Content/themes/base/jquery.ui.progressbar.css",
                            "~/Content/themes/base/jquery.ui.theme.css"));

并将其加载到布局页面中,如标题部分所示。

@Styles.Render("~/Content/themes/base/css")