Pergunta

Esta pode ser uma questão dolorosa simplesmente por que eu vou ser ridicularizado, mas estou tendo dificuldade em usar filepaths em masterpages. Eu acredito que este é porque se uma página em um sub-diretório para usar o masterpage, então o caminho de arquivo está incorreto.

Para corrigir essa necessidade I para obter o filepath a partir da raiz, mas eu não consigo fazê-lo funcionar.

Eu tentei:

            <script type="text/javascript" src="~/jQueryScripts/jquery.js"></script> 

e

            <script type="text/javascript" src="../jQueryScripts/jquery.js"></script> 

Sem sorte em ambos!

Algumas ideias sobre como eu posso dizer que para obter o filepath da raiz? Thanks:)

Foi útil?

Solução

Eu só estou assumindo por filepath, você url realmente média (ou uri, eu esqueço qual é parcial).

Sem o ~, o primeiro exemplo deve funcionar. <script type="text/javascript" src="/jQueryScripts/jquery.js"></script> faria com que o navegador para solicitação http://www.example.com/jQueryScripts/jquery.js (onde www.example.com é o seu domínio).

Outras dicas

Se você estiver executando um site habilitado para AJAX, veja a minha resposta a forma preferida -in-vs-2008 mas aninhado-se incluir a referência em relação ao JavaScript no vS 2008 aninhados Masterpage .

Eu acredito que você precisa ter runat=server na tag <head> do MasterPage para este URL rebasing ao trabalho.

<head runat="server">

Primeiro o til na frente é uma coisa asp.net para uso em controles de servidor e não funcionará em HTML básico.

Sem entrar em explicações detalhadas você pode simplesmente usar uma barra (/) na frente, e incluem o nome do aplicativo web se não a raiz do site.

Ou você poderia colocar o código em sua página principal para incluindo dinamicamente scripts e deixá-lo lidar com o pathing. Como:

    public void AddJavascript(string javascriptUrl)
    {   
        HtmlGenericControl script = new HtmlGenericControl("script");
        script.Attributes.Add("type", "text/javascript");
        javascriptUrl += "?v" + Assembly.GetExecutingAssembly().GetName().Version;
        script.Attributes.Add("src", ResolveUrl(javascriptUrl));
        Page.Header.Controls.Add(script);
    }

O código acima também anexa a versão de montagem. Eu uso isso principalmente para o desenvolvimento para que meus arquivos javascript são atualizados sempre que eu construir.

Você pode usar o Page.ResolveUrl método para contornar este

Por exemplo:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top