skm*_*asq 8 asp.net-mvc iis-7 url-rewriting virtual-directory bundling-and-minification
我在IIS服务器虚拟目录上托管多个应用程序,我正在使用URL Rewrite来方便它们.像这样手动编写的所有图像和其他资源"~/path/to/my/content"
都有正确的输出"/path/to/my/content"
,但是束路径之类"~/client/js"
的输出"/myapplication/client/js"
应该是"/client/js"
.
我该如何解决这个问题?
我如何启动脚本包:
var scriptBundle = new ScriptBundle("~/client/js");
Run Code Online (Sandbox Code Playgroud)
重写配置:
<rule name="Official Website" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^(www\.)?domain\.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Rewrite" url="officialsite/{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)
正在调查这些主题,但无法让任何事情对我有用:
更新:我使用Winhost作为托管服务提供商,他们不支持为IP设置主机头,可能是由于共享IP.它们提供了根文件夹的域指针,这就是我使用URL重写的原因.
你说 :
我在 IIS 服务器虚拟目录上托管多个应用程序,并使用 URL 重写来简化它们
因此,问题涉及可用于捆绑等的根配置(虚拟目录),这与捆绑配置或重写规则无关。我认为您需要将myapplication目录设置为虚拟并将其设置为单独的网站。确保您已遵循创建网站中提供的说明,其中显示:
当您在 IIS 中添加网站时,会在 ApplicationHost.config文件中创建一个网站条目。该条目指定:
- 站点的网络绑定
- 将站点映射到文件系统中的某个位置
- (可选)指定内容访问的用户凭据
为了确保用户请求到达正确的网站,必须为服务器上的每个站点配置唯一的标识。可以使用以下唯一标识符来区分托管在同一服务器上的网站。
为网站配置主机标头 (IIS 7)指向第一个。
更新:我认为服务器和您的项目可能存在名称冲突。更明智地尝试将客户端及其~/client/js
文件夹更改为新的。除非服务器有多个路径选择(具有此路径深度\
)来获取,否则您可以通过在项目和 js 包映射中添加额外的深度来解决它。
更新 2:最后,我建议您阅读如何在 winhost.com 上发布或托管子域?中提供的完整文章。解决这个令人惊奇的问题:)
归档时间: |
|
查看次数: |
2000 次 |
最近记录: |