首页 > 解决方案 > .woff2 字体使用正确的 mimemap 返回 404 错误?

问题描述

我的服务器上有一个 .woff2 字体,它不断返回 404 错误。经过研究,我发现我需要一个 mimeMap 标签来告诉服务器如何服务它。我添加了这个,它运行良好,然后我注释掉了重写规则,然后它就停止了工作。但是取消注释重写规则并不能使它再次起作用,没有其他任何改变。这是我的 web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
    <sectionGroup name="system.webServer">
        <sectionGroup name="rewrite">
            <section name="rewriteMaps" overrideModeDefault="Allow" />
            <section name="rules" overrideModeDefault="Allow" />
        </sectionGroup>
    </sectionGroup>
</configSections>

<system.webServer>
    <security>
        <!--  This section should be uncommented after
        installation to secure the installation. -->
        <requestFiltering>
            <hiddenSegments>
                <add segment="assets"/>
                <add segment="cms"/>
                <add segment="includes"/>
            </hiddenSegments>
            <fileExtensions>
                <add fileExtension=".woff" allowed="true" />
                <add fileExtension=".ttf" allowed="true" />
                <add fileExtension=".woff2" allowed="true" />
             </fileExtensions>
        </requestFiltering>
    </security>
    <directoryBrowse enabled="true" />
    <caching>
        <profiles>
            <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
            <add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00:00" />
        </profiles>
    </caching>
    <rewrite>
        <!--<rules>
            <rule name="block favicon" stopProcessing="true">
                <match url="favicon\.ico" />
                <action type="CustomResponse" statusCode="404" subStatusCode="1" 
                    statusReason="The requested file favicon.ico was not found" 
                    statusDescription="The requested file favicon.ico was not found" />
            </rule>
            <rule name="Imported Rule 1" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^example\.com$" />
                </conditions>

                <action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}" />
            </rule>
            <rule name="Imported Rule 2" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
            </rule>
        </rules>-->
    </rewrite>
    <defaultDocument>
        <files>
            <remove value="index.php" />
            <add value="index.php" />
        </files>
    </defaultDocument>

    <staticContent>
        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

    <!-- HTTP Errors section should only be enabled if the "Error Pages"
    feature has been delegated as "Read/Write" at the Web Server level.
       <httpErrors>
           <remove statusCode="404" subStatusCode="-1" />
           <error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" />
       </httpErrors>
    -->

</system.webServer>

服务器是IIS7+,服务器上确实存在字体,路径正确。出了什么问题?请帮忙。

标签: cssiisfontswoff2

解决方案


推荐阅读