To display Bootstrap 3.0 glyphicons on Windows Phone, I was forced to add the following section to my web.config file:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
</staticContent>
</system.webServer>
The problem now, is that it breaks development in Debug mode on DEV machines. The error is:
500.19 Internal Server Error
Cannot add duplicated collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.woff'.
How can I solve it? I am using Visual Studio 2013 on Win 8.1.
Thanks.
Solved using the following transform on the Web.Release.config file. In this way it only affects production website:
<system.webServer xdt:Transform="Insert">
<staticContent>
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
</staticContent>
</system.webServer>
Related
I'm already aware of the fact that fonts are not correctly recognized in IIS and I've already configured it web.config:
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
</system.webServer>
But this is different. In my html prototype I have correctly positioned icons of the arrows:
However, when running the same prototype under IIS I arrows are not positioned correctly and are oval shaped instead of circles.
Any idea?
You could try embedding the woff file in you CSS file. This eliminates the IIS issue.
Explanation for base64 font integration
I have and web application that need some mime types registered on web.config:
Like theses:
<staticContent>
<mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
<mimeMap fileExtension=".json" mimeType="application/json"/>
<mimeMap fileExtension=".pkg" mimeType="application/x-newton-compatible-pkg" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
</staticContent>
When a run the app on IIS 7, all work correctly. but under IIS 8 (windows 10 pc), I should have to modify the web.config like this:
<staticContent>
<!--mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" /-->
<!--mimeMap fileExtension=".json" mimeType="application/json" /-->
<mimeMap fileExtension=".pkg" mimeType="application/x-newton-compatible-pkg" />
<!--mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/-->
<!-- This must be enabled in some environments -->
</staticContent>
I know that on new IIS versions some mime types are registered as default, when I try to register its on my web.config some conflicts are generated with that mime types.
How I can, Automatically, detect if IIS have theses mime types or not, and modify my web.config automatically?
In your web.config, always remove those MIME types first and then add them. Then your file works in all cases.
After some research i've noticed that in order to use woff2 font types with IIS you need to set the following on the web project's web.config in order to avoid getting 404s from the server:
<staticContent>
<remove fileExtension=".woff"/>
<remove fileExtension=".woff2"/>
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
Locally, this seem to work, but when the project is deployed on IIS, I keep getting 404s, what could be the cause of the issue? Thanks
I had the same the problem today; I discovered the fonts were not included/added in my project.
I encountered a problem with 404 error messages on .woff files that seemed easily fixable from here. I opted to go the route of registering the MIME type in my web.config file so I wouldn't have to remember to update the production site with a new registration when the application I'm building was deployed.
I added the following lines to my web.config file:
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>
...
</system.webServer>
... and then I deployed. However, contrary to all the documentation I've read on this, it appears that this doesn't work. I still get the 404 error. Manually updating the IIS site (2008R2, IIS 7.5) and registering the MIME type fixed the issue, but it certainly didn't want to play nice with my web.config settings.
Is there an extra step I'm missing to get this to register solely with the web.config?
Try replace,
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
by,
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
#Venkat (cannot comment due to too low rep)
That would be stupid, considering the official MIME-type is application/font-woff.
Source: http://www.w3.org/TR/WOFF/#appendix-b
I am trying to add bootstrap glyphicons-halflings-regular.svg to my web site. Locally everything works fine, but on Azue I have 404 errors:
The resource you are looking for has been removed, had its name
changed, or is temporarily unavailable.
or when I add below staticContent section to my web.config
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".ttf" />
<mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
I got this error:
The controller for path
'/Content/fonts/glyphicons-halflings-regular.woff' was not found or
does not implement IController.
How should I proper configure my ASP.NET site to avoid above errors?
I hit the same problem with .woff file. Solution with adding that extension to web.config works fine:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
(see oryginal solution: http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites)
When I put the suggested lines into web.config it didn't work. Instead I put the following lines into Web.config (note the capital letter)
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
<mimeMap fileExtension="woff2" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
I did not include font files in solution. This caused that publishing website does not contains this files.
If you are using the continuous deployment on Azure, verify that the "build action" of all the files that you need is Content and not None.
Have you fixed the paths in the css file that are referring to the font files? Bootstrap assumes that the css file is inside a css directory and fonts is inside a fonts-directory on the same level as the css-directory.
When you run in Azure, the site is probably running in Release-mode. This means that your css and javascript is minified and bundles. This may break your setup sometimes.
I've done the following setup when including bootstrap in my projects:
Unzip bootstrap files into the /Content directory.
Add the following lines to App_Start/BundleConfig.cs
bundles.Add(new StyleBundle("~/Content/bootstrap/css/bundle")
.Include("~/Content/bootstrap/css/bootstrap.css"));
bundles.Add(new ScriptBundle("~/Content/bootstrap/js/bundle")
.Include("~/Content/bootstrap/js/bootstrap.js"));
Add the following lines to View/Shared/_Layout.cshtml
#Styles.Render("~/Content/bootstrap/css/bundle")
#Scripts.Render("~/Content/bootstrap/js/bundle")
Note that jQuery must be included before the Bootstrap js-bundle.
http://hj-dev.blogspot.no/2013/02/add-twitter-bootstrap-to-mvc4.html