我正在使用带有WinHost的ASP.NET MVC4。
就像问here的问题一样,我遇到了同样的问题:
我正在尝试WinHost而且我遇到了一些问题 子域。在WinHost上,每个主机可以有多个子域 帐户,但每个子域指向根网站。例如。您可以 有www.example.com,sub1.example.com和sub2.example.com但所有 它们在http://www.example.com/显示内容。
其他主机允许您将子域指向您的子文件夹 网站。这将允许您将sub1.example.com指向/ sub1, sub2.example.com到/ sub2和www.example.com到/.
WinHost建议使用asp / aspx页面进行重定向 http://sub1.example.com至http://sub1.example.com/sub1,指出 到/ sub1。虽然这样可行,但我希望没有子域 网址两次。
所以我尝试使用IIS7 URL Rewrite将http://sub1.example.com指向 / SUB1。 Ben Powell在his blog上详细描述了这一点。
我设法让这部分工作,以便http://sub1.example.com实际指向IIS中的虚拟应用程序“/ sub1”。
如果我使用Url.Content,它可以完美运行。
现在,我正在使用ASP.NET优化,我捆绑脚本和CSS。问题是它绝对需要一个相对网址,即:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
但是,因为这是一个相对网址,我将在标记中得到:
<script src="/sub1/bundles/jqueryval?v=UgyEMAYOuSB9Bb6HcOEVHpd6fIIp54yF086SRNVcdIY1"></script>
当然,由于“sub1”,它找不到文件。我想到了URL Redirect,我从未真正开始工作。也许是MVC中的一条路线?不确定如何做到这一点。我也可以完全放弃捆绑使用“Url.Content”,我觉得很难过。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
我知道您可以使用IBundleTransform根据特殊情况修改捆绑包中的内容。您可以修改捆绑上下文本身。这是一个链接MVC4 StyleBundle not resolving images