【问题标题】:IIS 8.0 Not Looking in SubfolderIIS 8.0 不在子文件夹中查找
【发布时间】:2019-04-30 15:24:01
【问题描述】:

我有一个使用 IIS 8.0 like so 在另一个网站上托管的应用程序(如果相关,它是一个使用 CLI 和 Webpack 的 Angular 2 项目)。我在 https://example.org/MyApp 托管我的应用程序。不幸的是,当我尝试运行该站点时,对于我引用的每个文件,我都会收到 404 错误。当我的文件实际托管在 https://example.org/MyApp/file.jpg 时,浏览器会尝试在 https://example.org/file.jpg 上查找我的文件。有没有办法告诉 IIS 在子目录而不是根文件夹中搜索这些文件?

请注意,Webpack 对所有捆绑使用相对文件路径,因此将这些文件路径更改为绝对路径是不可行的。

【问题讨论】:

    标签: angular iis webpack iis-8 angular-cli


    【解决方案1】:

    编辑您的 index.html 以设置 <base href>

    例如<base href="/MyApp/">

    【讨论】:

    • 您能解释一下为什么这个解决方案可以解决问题吗?它到底有什么作用?
    • 不幸的是,这并不能解决问题。位于我的资产文件夹 (example.org/MyApp/assets/file.jpg) 中的所有内容仍然返回 404 Not Found,因为该站点正在 example.org/assets/file.jpg 中寻找它们。
    【解决方案2】:

    也许我在这里打败了一匹死马,但是这似乎很有效:

    基本上是设置 base-href 和 IIS-url-rewrite 的混合。

    1. 使用--base-href /myAppDir/ 构建 ng-app
    2. 确保 URL 重写模块可用于您的 IIS 网站
    3. 将 web.config 文件添加到网站的根文件夹。
    4. 从 3. 编辑文件,例如:
    <configuration>
        <system.webServer>
          <rewrite>
            <rules>
              <rule name="Angular Routes" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll">
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="/MyApp/" />
                <!--<action type="Rewrite" url="/" />-->
              </rule>
            </rules>
          </rewrite>
        </system.webServer>
        </configuration>
    
    1. 您很可能希望使用另一个正则表达式 match-url 来满足您网站的需求。

    取自: https://devblogs.microsoft.com/premier-developer/tips-for-running-an-angular-app-in-iis/

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 谢谢,约翰;你完全正确。编辑了帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    相关资源
    最近更新 更多