2013-02-25 52 views
1

我想在我的代碼中捆綁三個css文件。其中之一是我的網絡字體,我使用'網址'。但是當我運行應用程序瀏覽器時找不到這些文件。與文件位置綁定的樣式

這是我的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")); 

任何人可以幫助我解決這個問題?

回答

5

當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")); 
+0

@ahmadalishafiee:這不是我說的。再次閱讀我的答案。有很多方法可以解決這個問題,包括我建議的方法。 – StriplingWarrior 2013-02-25 16:35:06

0

,你可以把它變成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") 
2

看一看this link

基本上,你可以添加一個轉換,轉換的網址在你的CSS文件,以有效的URL。

您可以通過更改您的捆綁配置這個做到這一點:

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()) 
);