Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC3可以';t access字体(静态内容)_Asp.net_Css_Asp.net Mvc 3_Webfonts - Fatal编程技术网

ASP.NET MVC3可以';t access字体(静态内容)

ASP.NET MVC3可以';t access字体(静态内容),asp.net,css,asp.net-mvc-3,webfonts,Asp.net,Css,Asp.net Mvc 3,Webfonts,我觉得MVC3有个奇怪的问题。 我的css文件包含一个适用于IE的@字体,如下所示: @font-face { font-family: AvantGardeNormal; src: url('fontname.eot'); } 它在本地(在我的机器上)运行良好,但是当我发布到服务器(Azure)时,我得到了这个错误:(就像它试图访问字体文件一样,就像控制器中的操作一样) 错误(System.Web.HttpException):路径“/Content/fontname.eot

我觉得MVC3有个奇怪的问题。 我的css文件包含一个适用于IE的@字体,如下所示:

@font-face {
    font-family: AvantGardeNormal;
    src: url('fontname.eot');
}
它在本地(在我的机器上)运行良好,但是当我发布到服务器(Azure)时,我得到了这个错误:(就像它试图访问字体文件一样,就像控制器中的操作一样) 错误(System.Web.HttpException):路径“/Content/fontname.eot”的控制器未找到或未实现IController

当然,字体不会加载


谢谢。

根据我的经验,当我使用ELMAH捕获这些异常时,100%的时间都是因为我的部署没有部署字体文件。您应该仔细检查服务器上是否存在该文件。

有几种方法可以验证引用、内容或数据文件是否属于部署的一部分。这里介绍了大多数常见的问题:

首先您可以检查引用或静态内容的属性,查看“Copy Local”是否设置为“True”

其次,您可以解压CSPKG文件(如果需要,将其重命名为zip),然后解压CSPKG中的CSSX文件。解压CSSX文件后,您可以看到其中的可用内容,因为这是部署后应用程序可用的内容


第三个,如果您可以通过RDP访问Azure VM,您可以使用RD凭据登录,并查找驱动器E:和文件夹Approot\folder中的所有引用和静态内容。

将“构建操作”设置为“内容”“对于每个字体文件,否则将不会部署它们。

我本周也遇到了同样的问题,将带有可下载字体的MVC应用程序部署到运行IIS的服务器上

为了让IIS返回正确的内容,它使用了一个名为MimeTypes的查找表。 基本上是一个文件扩展名查找。您必须将.eot文件扩展名添加到IIS或web.config中的Mimetypes中

<system.webServer>
   <staticContent>
     <remove fileExtension=".eot" />
     <mimeMap fileExtension=".eot" mimeType="application/application/vnd.ms-fontobject" />
   </staticContent>    
</system.webServer>

第二部分是在项目中添加一个httpHandler,以便在http请求中为字体文件提供服务,这在一开始我并不清楚

<system.web>
   <httpHandlers>
     <add verb="*" path="*.eot" type="System.Web.StaticFileHandler" />
   </httpHandlers>    
</system.web>


我也和艾玛一起抓到他们。我会检查一下,为什么它不部署字体文件,但其他的都部署了?