使用文件位置进行样式绑定
本文关键字:样式 绑定 位置 文件 | 更新日期: 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")