【问题标题】:Enabling Server Side Includes in IIS Express/Visual Studio在 IIS Express/Visual Studio 中启用服务器端包含
【发布时间】:2016-03-30 12:16:24
【问题描述】:

我正在使用带有内置 IIS Express 服务器的 VS2015...

是否可以启用服务器端包含 (SSI),例如这种事情:

<!--#include virtual="/include/test.shtml" -->

我知道我可以在完整的 IIS 上使用 SSI,但我找不到任何有关在 IIS Express 上使用 SSI 的信息。

(我不能使用包含 sn-ps(例如 asp)的替代方法,因为此代码也必须在非 IIS 服务器上运行。)

【问题讨论】:

  • IIS Express 附带服务器端包含模块,因此您可以尝试一下。

标签: visual-studio visual-studio-2015 iis-express ssi


【解决方案1】:

这与文件是否为.asp 无关。你只需要适当的配置。

我已经安装并配置了 SSI 模块作为 IIS Express 的一部分(我使用的是 Visual Studio 2017 社区版),尽管我发现一些文章建议它需要单独安装。

在 applicationHost.config 文件中,handlers 部分中有此条目:

<add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />

这意味着您的文件需要具有 .shtml 扩展名才能由 SSI 模块处理。在您的 web.config 文件中为您自己添加一个条目:

<configuration>
<system.webServer>
    <handlers>
        <add name="SSINC-html" path="*.html" verb="*" modules="ServerSideIncludeModule" resourceType="File" />
    </handlers>
</system.webServer>

现在 SSI 可以处理普通的 HTML 文件了。

【讨论】:

    【解决方案2】:

    似乎让 SSI 工作的唯一方法是将我的“.htm”和“.html”文件重命名为“.asp”。然后 SSI 语法就起作用了。

    这有点痛苦,因为我需要在非 IIS 服务器上运行相同的代码...

    【讨论】:

      【解决方案3】:

      看看: http://vlads-hideout.blogspot.com/2013/05/server-side-include-in-iis-express.html 它有些过时了。现在可以在 Visual Studio 在项目文件夹中自动创建的不可见“.vs”文件夹中找到配置文件。 “.vs\config\applicationhost.config”。

      它已经包含 globalModules 条目:

              <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
      

      以及/中的以下条目:

                  <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
                  <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
                  <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
      

      因此,例如,“*.SHTML”会自动激活 SSI。 如果您确实想修改默认文档或 HTML 文件扩展名,只需将其中一个配置语句的克隆复制到 web.config 的 / 部分并适当更改扩展名即可。

      【讨论】:

        【解决方案4】:

        在过去两年中多次为解决此问题进行长期而艰苦的搜索后,我发现了我们许多人都遇到的问题。 ASHRAF 有正确的答案,但我没有仔细阅读。他的配置文件添加/更改是针对 .HTML 文件的。 我是为包含文件 (*.inc) 而不是包含文件 (.html) 的文件添加它。注意这一行是针对 .html 文件的 谢谢ASHRAF。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-20
          • 1970-01-01
          • 2021-08-06
          • 1970-01-01
          • 2018-04-14
          • 2021-10-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多