在将我的应用程序部署到VPS后,我遇到了问题。
我在VPS上安装了IIS,删除了默认网站,并添加了另一个网站。一切看起来都很正常,网站启动了,但是我无法访问像Content、Scripts、Templates等文件夹中的任何文件。这意味着我的网站上没有任何图片和样式。
我尝试为IIS_IUSRS授予权限,但文件仍然无法正确显示。网站与系统位于同一分区,我认为这就是问题所在,但我无法移动它。我只有一个分区 :-( 有解决方法吗?
在将我的应用程序部署到VPS后,我遇到了问题。
我在VPS上安装了IIS,删除了默认网站,并添加了另一个网站。一切看起来都很正常,网站启动了,但是我无法访问像Content、Scripts、Templates等文件夹中的任何文件。这意味着我的网站上没有任何图片和样式。
我尝试为IIS_IUSRS授予权限,但文件仍然无法正确显示。网站与系统位于同一分区,我认为这就是问题所在,但我无法移动它。我只有一个分区 :-( 有解决方法吗?
以上方法对我都没有起作用。我还记得很久以前的一种方法可以解决这个问题,那就是缺少MIME类型映射会使IIS感到困惑。如果你能将不同类型的文件放在不同的文件夹中,那么这个问题就容易诊断。
简单的解决方法是在IIS的"MIME类型"部分进行设置,可以在服务器、网站或虚拟文件夹上进行设置。只需添加"*.foo"和"application/octet-stream"作为MIME类型即可,这意味着"只需发送字节即可!"
web.config
文件,以提供静态文件服务,并包含以下内容:<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
<handlers accessPolicy="Script,Read">
<!-- For any request to a file exists on disk, return it via native http module. AccessPolicy="Script" above is to allow for a managed 404 page. -->
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />
</handlers>
</system.webServer>
</configuration>
当 validateIntegratedModeConfiguration 为 false 时,IIS 将不再提供不支持配置的警告,请确保您的应用程序在集成模式下正常工作,然后再进行此设置。- Tha'er AlAjlouni ثائر العجلوني
我也遇到了这个问题,结果发现是文件路径的问题。
我试图以"C:\folder\file"的方式访问路径
当我尝试以"\file"的方式访问时,它起作用了,所以它将会像"(你的服务器)\file"这样
而不是"(你的服务器)C:\folder\file"
可能不是经常出现的问题,但我意外地使用默认页面的路径创建了一个虚拟目录,这搞乱了一切。我不得不打开applicationhost.config文件并删除虚拟目录(也许还有其他方法可以删除它,但在我打开文件之前我没有想到)。既然已经打开了文件,我就继续保存了更改。
我也添加了这段代码来使应用程序运行。如果没有它,应用程序无法工作,但文件可以正确显示。 :-(
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
</system.webServer>
cache
的文件——这是IIS中未知的mime类型。cache
的mimeMap,我的404文件未找到问题得到了解决,具体操作如下:<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="true" />
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".config" />
<add fileExtension=".config" allowed="true" />
<add fileExtension=".dll" allowed="true" />
<add fileExtension=".exe" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
<handlers accessPolicy="Read, Script" />
<staticContent>
<mimeMap fileExtension=".cache" mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
了解更多关于添加静态内容 MIME 映射和解决 404 错误的信息。