如何在 IIS 7.5 中将 Umbraco 7.x 网站实现为虚拟目录?

How to implement Umbraco 7.x website as a virtual directory in IIS 7.5?

我有一个使用 Umbraco 7.3 开发的网站,如果我在 IIS 7.5 下作为网站安装,它可以完美运行,没有任何问题, 当我想用作虚拟目录时出现问题

问题:

  1. 图像未加载到网站中(404 未找到)
  2. .CSS 个文件的
  3. 404 错误
  4. .JS 文件的 404 错误

我能够使用以下方法解决第二个和第三个问题:

但是图片的第一个问题我还是没有解决,任何帮助将不胜感激。

您内容中的任何现有图像都将具有适合您本地 non-virtual 目录路径的路径。但是如果你从虚拟目录添加图像它应该工作?

原因是路径直接设置在HTML,我猜。这里可能有一个脚本来更新所有图片路径:https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/59666-Umbraco-7-in-virtual-directory

经过大量搜索,我终于能够毫无问题地使用它,以下是我将 Umbraco 7.x 网站实现为虚拟目录的步骤:

  1. 打开 umbracoSettings.config 文件 Config 文件夹 并在 [=] 之间插入此代码 <ResolveUrlsFromTextString>true</ResolveUrlsFromTextString> 11=]标签。
  2. 更新您用作主模板的主模板中的所有 JS 和 CSS 路径 "/js/*" to "~/js/*" & "/css/*" to "~/css/*" 还将 runat="server" 属性添加到<head> 标签或 header 中的每个 .CSS link 喜欢这个例子:<link href="~/Css/main.css" rel="stylesheet" type="text/css" runat="server"/> 喜欢图像:

  1. 最后,这是最重要的一点,修复图像 links 或 Media 文件夹,为此打开 SQL 服务器和 运行 Umbraco 中的以下查询DBUPDATE cmsPropertyData set dataNvarchar = replace(dataNvarchar, '/media/','/replaceWithvirDirNameHer/media/') where dataNvarchar like '/media/%' 并且不要忘记将 replaceWithvirDirNameHer 更改为实际的虚拟目录名称。
  2. 重新启动 IIS 并重新发布整个站点,如图所示:

重要提示:

有些link可能没有反映出变化,这是因为它的路径是固定的,所以我们也要做,不要忘记,如图:

希望对您有所帮助。