Em minhas aplicações, geralmente preciso usar caminhos relativos. Por exemplo, quando faço referência a JQuery, geralmente faço assim:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Agora que estou fazendo a transição para MVC, preciso levar em consideração os diferentes caminhos que uma página pode ter em relação à raiz. É claro que isso era um problema com a regravação de URL no passado, mas consegui contornar isso usando caminhos consistentes.
Estou ciente de que a solução padrão é usar caminhos absolutos, como:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
mas isso não funcionará para mim, pois durante o ciclo de desenvolvimento, tenho que implantar em uma máquina de teste na qual o aplicativo será executado em um diretório virtual. Os caminhos relativos à raiz não funcionam quando a raiz muda. Além disso, por motivos de manutenção, não posso simplesmente alterar todos os caminhos durante a implantação do teste - isso já seria um pesadelo.
Qual é a melhor solução?
Editar:
Uma vez que esta questão ainda está recebendo visualizações e respostas, achei que seria prudente atualizá-la para observar que, a partir do Razor V2, o suporte para urls relativos à raiz está integrado, para que você possa usar
<img src="~/Content/MyImage.jpg">
sem qualquer sintaxe do lado do servidor, e o mecanismo de visualização substitui automaticamente ~ / por qualquer que seja a raiz do site atual.