c# - mvc - Utilizzo dei collegamenti relativi alla root del sito in Razor



razor page (2)

Devi utilizzare i percorsi relativi in ​​tutta la tua app:

~ non funzionerà nel codice html statico.

Tu puoi scrivere

<img src="@Url.Content("~/images/logos/hdr.png")" />

o

<img src="../images/logos/hdr.png" />

Il primo approccio è valido per i file di layout in cui il percorso relativo potrebbe cambiare quando si hanno URL di instradamento di lunghezza diversa.

MODIFICARE

Riguardo alla tua domanda sui collegamenti normali:

Quando si collega a un'altra pagina nella propria app, non si specifica il file di visualizzazione come destinazione ma l'azione che esegue il rendering di una vista come risultato. Per questo si utilizza ActionLink HtmlHelper:

@Html.ActionLink("Linktext", "YourController", "YourAction")

Questo genera automaticamente l'URL giusto per te:

<a href="YourController/YourAction">Linktext</a>

MODIFICA 2

Ok, no MVC: quindi devi generare i tuoi link da solo.

Devi usare anche i percorsi relativi. Non iniziare nessun collegamento con il carattere / !

<a href="linkOnSameLevel.cshtml">Link</a>
<a href="../linkOnParentLevel.cshtml">Link</a>
<a href="subFolder/linkOnOneLevelDown.cshtml">Link</a>

MODIFICA 3

Quando si utilizzano le pagine di Layout, è possibile utilizzare il metodo di estensione Href per generare un url relativo:

<link href="@Href("~/style.css")" ...

https://ffff65535.com

Ho un sito Web che funziona perfettamente con Razor (C #) tutta la codifica funziona correttamente quando utilizzo il mio test locale (WebMatrix IIS).

Quando lo metto "online" sul mio server, il sito Web non è alla base del sito stesso

Per esempio:

http: // intranet.mycompany.com/inform

In pratica è la "radice" della mia struttura di cartelle, quindi tutte le mie cartelle partono da lì (file css default.cshtml ... e così via)

Il mio "_PageStart.cshtml" lo vede correttamente quando accedo al mio sito dal link http://intranet.mycompany.com/inform mi dà il Layout che ho configurato in _PageStart.cshtml (e mostra davvero il layout + il reso default.cshtml)

MA nient'altro sta ottenendo il percorso corretto, ad esempio:

<img src="~/images/logos/hdr.png" />

Il titolare img è lì posso vederlo ma mostra che il link è rotto ... quando faccio clic destro sul supporto img e faccio le proprietà per vedere dove dovrebbero essere i file che mi mostra:

http: // intranet.mycompany.com/images/logos/hdr.png

Quindi passerà alla radice "completa" non alla radice relativa ...

Come posso ripararlo ?


So che ' ~ ' viene aggiunto di default, ma tendo a cambiarlo in modo che tutti i percorsi siano relativi al mio file di codice piuttosto che root dell'applicazione, usando " .. " ad es. "../images/logos" ecc





razor