2014-03-27 70 views
0

我试图让ASP.NET Bundling改变它为JS/CSS包生成路径的方式。如果我的网站托管在http://example.com/myapp我用Scripts.Render( “〜/包/ JS”)和Styles.Render( “〜/包/ CSS”),这是我得到:由ASP.NET Bundling生成的绝对路径 - 如何生成相对路径?

<script src="/myapp/bundles/js?v=RYQkGlZ5kEreOyiFPLgJ2SkEJtBEjiJQ6NeuVTYwXMY1"></script> 
<link href="/myapp/css?v=1FC5SbQ1-E0J4ZXC1coG1W09-2uMUsJx0S1y_amIU3U1" rel="stylesheet"/> 

相反如果通过一些DNS魔术,我们可以使用户能够使用的URL http://myapp - 尽管它在http://example.com/myapp仍托管 - 我想脚本/风格包来呈现的网址是这样的:

<script src="bundles/js?v=RYQkGlZ5kEreOyiFPLgJ2SkEJtBEjiJQ6NeuVTYwXMY1"></script> 
<link href="bundles/css?v=1FC5SbQ1-E0J4ZXC1coG1W09-2uMUsJx0S1y_amIU3U1" rel="stylesheet"/> 

有没有一种解决方法这个?我不认为Scripts.RenderFormat或Styles.RenderFormat将有助于此。

+0

快速回答,通过'System.Web.Optimizations'程序集查看,看起来好像很难编码。除非你想重新发明轮子,否则我认为应用程序相对路径是必需的。可能有些事我没有看到。 –

回答

0

问题的根源在于我需要将应用程序配置为位于我的网站的根目录。

但是,在这种情况下,DNS魔术(F5负载平衡器)提供了帮助...我们的F5向导能够为请求执行所有URL重新路由/重新写入,以便即使应用程序不是在根部,请求到达正确的地方。