我正在尝试在IIS7.5上运行的ASP.NET站点上将我的默认页面设置为Index.html。我一直得到404.4告诉我没有设置处理程序。但是,我为html网页设置了<handler>
和<httpHandlers>
值。我还指定了默认文档。但我一直得到404.4。
我可以浏览到myuri / index.html,但我无法将其作为默认值加载。
有什么建议吗?
这是我的web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings />
<connectionStrings />
<system.web>
<authentication mode="Windows" />
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.StaticFileHandler" />
<add path="~/assets/*" verb="*" type="System.Web.StaticFileHandler"/>
<add verb="*" path="*.rastahook" validate="false" type="OpenRasta.Hosting.AspNet.OpenRastaRewriterHandler, OpenRasta.Hosting.AspNet" />
</httpHandlers>
<httpModules>
<add name="OpenRasta" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
</httpModules>
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID" />
</system.web>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true" />
<defaultDocument enabled="true">
<files>
<clear />
<add value="/index.html" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="threetasks.apphb.net{PATH_INFO}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
<httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" />
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="OpenRasta" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
</modules>
<handlers accessPolicy="Script,Read">
<clear />
<add name="StaticFile" path="index.html" verb="*"
modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
<add name="StaticFiles" path="~/assets/*" verb="*"
modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
<add name="OpenRasta" verb="*" path="*.rastahook"
type="OpenRasta.Hosting.AspNet.OpenRastaRewriterHandler, OpenRasta.Hosting.AspNet" />
</handlers>
<staticContent>
<!-- Set expire headers to 30 days for static content-->
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<remove fileExtension=".css" />
<mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" />
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />
<remove fileExtension=".rss" />
<mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8" />
<remove fileExtension=".html" />
<mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" />
<remove fileExtension=".xml" />
<mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
<mimeMap fileExtension=".ogg" mimeType="video/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
<!--<mimeMap fileExtension=".svg" mimeType="images/svg+xml" />-->
<!--<mimeMap fileExtension=".svgz" mimeType="images/svg+xml" />-->
<remove fileExtension=".eot" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
</staticContent>
</system.webServer>
</configuration>
答案 0 :(得分:2)
要处理iis 7.5中的静态内容,需要通过element中web.config文件中的以下元素注册mime类型。我主要用于mp4视频,因为它出现404.4错误。
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<!-- for html may be -->
<mimeMap fileExtension=".html" mimeType="text/html" />
</staticContent>
答案 1 :(得分:0)
退后一步......你在哪里设置默认文件?
如果你在web.config中设置它,那么你说ASP.Net运行时将/应该处理.html扩展名。换句话说,web.config属于ASP.Net。
您是否在IIS中设置了默认文档? 如果它只是一个静态文件,甚至不需要ASP.Net - IIS应该处理开箱即用的htm / html文件。
答案 2 :(得分:0)
我们最终做的是拆分项目。我们的目标是拥有一个思考JavaScript前端的服务后端。其中一些是尝试我们拥有的不同模式和想法。我正在写这个服务而我的朋友正在写前端。在谈到它之后,他们不会需要在同一个项目中。
也就是说,我将创建一个API,他将创建一个可以在任何地方托管的客户端。考虑到这一点,我的网站现在只做API工作,不需要提供任何html作为默认页面。