.Net developer

Put na Laje

Estréia dos sputiniks

Cannot use a leading .. to exit above the top directory

Esta mensagem ocorre no DOTNET quando as referências a controles, como os web user controls, são feitos com o uso de mapeamento relativo como "../" e "../../".  O ideal, em dotnet, é sempre, aliás, o CORRETO é SEMPRE usar o caminho absoluto de tudo!! Para tanto, basta colocar um "~" antes da pasta raiz. 


Ex: path de uma imagem, usar  src="~/pasta_raiz/meu_diretorio_imagens/imagem.jpg", só para citar um caso básico.

Mas, como sempre, há um segredo, que eu só descobri depois de algumas horas: os links de referência a arquivos css, nativos do próprio HTML, o dotnet consegue, tem a capacidade, o dom de se atrapalhar com as suas referências! Mesmo sendo HTML. Sim, o HTML com referencia relativa , no cabeçalho da página dotnet , dá bug no server! Incrivel. Solução? Adicione esses links do header da página via code-behind mesmo, como fiz no exemplo abaixo:

        HtmlHead header = (HtmlHead)Page.Header;
        HtmlLink link = new HtmlLink();
        link.Attributes.Add("href", "~/css/meu_arquivo_css.css");
        link.Attributes.Add("type", "text/css");
        link.Attributes.Add("rel", "stylesheet");
        header.Controls.Add(link);

É chato? Burocrático? Sem noção? Sim. Mas é o que faz esta problemática funcionar!