2009-10-13 13 views
6

Mam ten dość popularny problem, ale nie udało mi się znaleźć rozwiązania, które działa.CSS i obrazy na stronie wzorcowej

Basicly używam Master Page (/Masterpages/Default.master), który zawiera

<link href="../css/style.css" rel="stylesheet" type="text/css /> 

I to zawiera również kilka obrazów z tej samej względnej łączenia.

Ale po zastosowaniu strony wzorcowej do stron zawartości (w różnych poziomach folderów) formatowanie css i obrazy są tracone.

Czy istnieje mimo to dynamiczne rozwiązywanie linków do folderów do css i obrazów na wszystkich stronach treści za pomocą strony wzorcowej?

góry dzięki

UPDATE:

Jest to dodatkowy problem. Trudno jest uzyskać poprawne renderowanie danych wyjściowych zarówno w przeglądarce, jak iw widoku projektu w programie Visual Studio.

Dostałem go do pracy przy użyciu asp: obraz rozwiązanie dla obrazów w masterpage i przez podwójnym łączącej css w masterpage, jeden, aby to uczynić w VS i jeden, aby to uczynić poprawnie przeglądanie strony.

<link href="../css/style.css" rel="stylesheet" type="text/css" /> 
<link href="<%=ResolveUrl("~/css/style.css")%>" rel="stylesheet" type="text/css" /> 

Odpowiedz

10

najlepiej użyć:

<link href="<%=ResolveUrl("~/css/style.css") %>" rel="stylesheet" type="text/css /> 

ponieważ ta poradzi sobie z korzeniami aplikacji IIS przeciwieństwie:

<link href="/css/style.css" rel="stylesheet" type="text/css /> 
+0

Czy ResolveUrl musi być również użyty na wszystkich tagach img? – Andreas

+0

Nie, jeśli używasz asp: Image component, ale tak, jeśli używasz tagów html i określasz atrybut src. – Richard

1

Dość pewien, że to będzie działać

<link href="/css/style.css" rel="stylesheet" type="text/css /> 

/przejście do katalogu głównego witryny

+1

To działa aż opublikujesz swoją aplikację w podkatalogu witryny internetowej. – tvanfosson

0

obrazów w CSS są w stosunku do pliku są odwołania od.

(Wyjątkiem od tego jest „filtr” zasada w programie Internet Explorer, która jest wykorzystywana do poprawki PNG ilustracje są w tym przypadku w stosunku do dokumentu HTML.).

1

można użyć tyldy aby uzyskać link do pracy z gdziekolwiek. To zadziała również w obrazach.

<link runat="server" href="~/css/style.css" rel="stylesheet" type="text/css /> 
0

Tak, problemem jest to, że materpage używa względny adres URL, aby załadować CSS:

"../css/style.css" 

trzeba zmienić to do katalogu głównego serwisu (w zależności od lokalizacji plików css) coś w rodzaju:

"/css/style.css" 

niż na różnych poziomach folderów można używać tego samego adresu URL.

3

Możesz ustawić link runat = "server" i użyć mapowania tyldy, aby utworzyć ścieżkę CSS względem katalogu głównego witryny.

<link runat="server" id="siteStyle" 
     href="~/css/style.css" 
     rel="stylesheet" 
     type="text/css" /> 

ilustracje użyte w CSS powinny być w stosunku do lokalizacji pliku CSS i powinno rozwiązać zwykle raz sam plik CSS jest prawidłowo włączone. W przypadku obrazów w znacznikach na stronie należy użyć kontrolki ASP: Image i ponownie użyć mapowania tyldy dla ścieżki względem katalogu głównego.

0

W rzeczywistości strony wzorcowe automatycznie dokonają ponownego utworzenia plików css bez konieczności dodawania runat = "server". Upewnij się, że plik css znajduje się w jednym katalogu w określonym folderze.

Możesz użyć bezwzględnej ścieżki do pliku css, ale studio graficzne nie renderuje stylów w widoku projektu, kiedy to robisz. Czasami nie będziesz wiedzieć, czy zamierzasz działać w katalogu wirtualnym, więc nie zawsze jest to idealne rozwiązanie do korzystania z bezwzględnej ścieżki.

Użyj również względnych linków do twojego obrazu jako pliku z samego pliku css - który będzie działał niezależnie od tego, jak łączysz się z arkuszem stylów.

Powiązane problemy