2008-12-12 6 views
6

Je suppose que c'est une question facile, mais je serai sacrément si je peux trouver la réponse.Chemin d'accès relatif à une feuille de style dans Visual Studio ne fonctionne pas dans l'aperçu

J'ai un site Web dans Visual Studio 2008. Les chemins vers les feuilles de style (et images) sont dans le format suivant /css/stylesheetname.css

A la racine du projet Web dans Visual Studio le dossier existe comme le fait la feuille de style. Ces chemins fonctionnent correctement lors de l'exécution dans IIS.

Si j'utilise le serveur Web intégré dans Visual Studio les chemins échouent parce qu'il met le projectname dans le chemin à savoir http://localhost:2020/projectname/default.aspx

Dans ce cas, le/prend le chemin de retour à http://localhost:2020

Cette situation est encore aggravée par le fait que si vous cliquez sur "design", les styles qui importent les images de fond échouent bien que la feuille de style soit importée correctement (car tous les autres aspects de la feuille de style fonctionnent, mais pas .class{font-family:arial;}).

Je suppose que tout dépend de la façon dont Visual Studio calcule son chemin racine pour le site Web, mais je ne trouve pas de paramètre pour le modifier.

Des idées? Mise à jour: selon la réponse d'Egil Hansen J'ai converti les chemins dans le fichier CSS en chemins relatifs. Cependant, les images d'arrière-plan ne s'affichent toujours pas en mode Conception. Je vais jeter un oeil à l'utilisation de thèmes pour contourner cela en temps voulu.

Répondre

0

ça fait longtemps que je n'ai rien fait en CSS, mais peut-être que l'URL (./ images/image.jpg) va fonctionner?

Édition: Ou plutôt ~/format /css/stylesheetname.css ou ./format /css/stylesheetname.css en tant qu'URL de la feuille de style.

5

Je pense que la bonne solution consiste à utiliser des URL relatives dans la feuille de style au lieu des URL absolues que vous utilisez maintenant. Notez que les URL relatives dans les feuilles de style sont relatives à l'emplacement de la feuille de style et non à la page affichée par le navigateur. Si vous utilisez des thèmes ASP.NET, vous pouvez mettre tous vos graphiques de site Web dans un dossier /App_Themes/YourTheme/Images/ et placer votre feuille de style dans le dossier /App_Themes/YourTheme/.

Dans votre feuille de style, vous pouvez simplement référencer une image avec url(Images/img.gif), et cela fonctionnera à la fois en ligne et en développement. Il suffit d'attribuer votre thème ASP.NET à la page que vous voulez, soit via la section Pages web.config (<pages styleSheetTheme="Default">) qui affectera un thème à toutes les pages du site ou par l'intermédiaire de <% @ Page ... directive sur chaque page.

En général, vous pouvez faire des choses vraiment bien avec les thèmes et les peaux ASP.NET, jetez un oeil à la ASP.NET Themes and Skins Overview sur msdn.microsoft.com.

Il y a quelques problèmes à connaître avec les Thèmes dans ASP.NET, jetez un oeil à mon article How to take control of style sheets in ASP.NET Themes with the StylePlaceHolder and Style control, qui explique et résout les problèmes que j'ai rencontrés jusqu'à présent.

0

J'ai eu le même problème et ça m'a rendu fou. La solution consiste à ajouter un dossier Apps_Theme et à copier les images dans ce dossier. Lorsque vous publiez le site, la structure du dossier est conservée et les imnges sont affichés.

0

J'ai défini l'URL du chemin css par code {background: url (/images/xxx.jpg) non-repeat; } et le fichier en cours d'exécution à IIS, elle doit donc à pointer site Web par défaut à votre projet

comment courir des tests de type aperçu : http://localhost/default.aspx

c'est le chemin correct même fonctionnant sur le serveur comprennent js fichier ou css peut utiliser «/» chemin racine

acclamations Noboyband

1

J'ai des projets en cours d'exécution en utilisant le dossier d'image personnalisé pour tous mes graphiques pour les applications ASP.Net. Bien qu'il y ait eu des avancées à cet égard avec les dossiers App_Theme et App_Code disponibles dans l'IDE VS progressif; J'ai toujours gardé mon dossier et il n'a pas disparu lors du déploiement sur le serveur.

Donc, avec cela dit - le dossier proverbiales assis avec tout le bac, App_Code et _themes et la référence est effectuée par cette façon

background: url (../ image/..);

bien sûr le code ci-dessus assis dans le fichier CSS. Il fonctionne pour moi tout le temps

1

ne sais pas si cela fonctionne pour VS 2008 ou non, mais im en utilisant Visual Web Developer 2010 et il a fonctionné pour moi:

1) cliquez sur le projet dans l'explorateur de solution

2) il montre un « chemin virtuel » propriété qui est réglé par défaut sur «/projectname »

3) changer à «/» au lieu et il semble faire ce que l'on souhaite

laissez-moi savoir si Cela fonctionne pour vous!

Questions connexes