Относительный путь к таблице стилей в Visual studio, не работающей в режиме предварительного просмотра - PullRequest
6 голосов
/ 12 декабря 2008

Полагаю, это простой вопрос, но я буду проклят, если найду ответ.

У меня есть веб-сайт в Visual Studio 2008. Пути к таблицам стилей (и изображениям) находятся в следующем формате /css/stylesheetname.css

.

В корне веб-проекта в Visual studio существует папка, как и таблица стилей. Эти пути хорошо работают при запуске в IIS.

Если я использую встроенный веб-сервер в Visual Studio, пути потерпят неудачу, потому что он помещает имя проекта в путь, т.е. http://localhost:2020/projectname/default.aspx

В этом случае / возвращает путь обратно к http://localhost:2020

Это еще более усугубляется тем фактом, что если вы нажмете «Дизайн», все стили, импортирующие фоновые изображения, потерпят неудачу, хотя таблица стилей будет импортирована правильно (потому что все другие аспекты работы с таблицей стилей работают, т.е. нет).

Я полагаю, что все это связано с тем, как Visual Studio рассчитывает корневой путь для веб-сайта, однако я не могу найти параметр, чтобы изменить это.

Есть идеи? Обновление: согласно ответу Эгиля Хансена Я преобразовал пути в файле CSS в относительные пути. Однако фоновые изображения по-прежнему не отображаются в режиме «Дизайн». Я посмотрю на использование тем, чтобы обойти это в должное время.

Ответы [ 6 ]

5 голосов
/ 12 декабря 2008

Я думаю, что правильное решение - использовать относительные URL в таблице стилей вместо абсолютных URL, которые вы используете сейчас.

Обратите внимание, что относительные URL-адреса в таблицах стилей относятся к местоположению таблицы стилей, а не к текущей странице, просматриваемой браузером.

Если вы используете ASP.NET Themes, вы можете поместить всю графику вашего веб-сайта в папку /App_Themes/YourTheme/Images/ и поместить таблицу стилей в папку /App_Themes/YourTheme/.

В своей таблице стилей вы можете просто ссылаться на изображение с помощью url(Images/img.gif), и оно будет работать как онлайн, так и в разработке.

Вам просто нужно назначить тему ASP.NET тем страницам, которые вы хотите, либо через раздел Страницы web.config (<pages styleSheetTheme="Default">), который назначит тему всем страницам на сайте, либо через < Директива% @ Page ... на каждой странице.

В общем, вы можете сделать действительно полезные вещи с темами и оболочками ASP.NET, просто взгляните на Обзор тем и оболочек ASP.NET на msdn.microsoft.com.

Есть несколько проблем, о которых необходимо знать с темами в ASP.NET, посмотрите на мой пост Как получить контроль над таблицами стилей в темах ASP.NET с помощью StylePlaceHolder и элемента управления Style который объясняет и решает проблемы, с которыми я до сих пор сталкивался.

1 голос
/ 15 ноября 2012

не уверен, работает ли это для VS 2008 или нет, но я использую Visual Web Developer 2010, и это сработало для меня:

1) нажмите на проект в обозревателе решений

2) показывает свойство «Виртуальный путь», которое по умолчанию равно «/ projectname»

3) вместо этого измените его на "/", и оно, кажется, делает то, что нужно

Дайте мне знать, если это работает для вас!

1 голос
/ 20 марта 2012

Я выполняю проекты, использующие пользовательскую папку Image для всей моей графики для приложений ASP.Net. Хотя в этом отношении были достигнуты успехи с папками App_Theme и App_Code, доступными в прогрессивной VS IDE; Я все еще сохранил свою папку, и она не разочаровала при ее развертывании на сервере.

Итак, со сказанным - папка с пословицами будет сидеть со всеми корзиной, App_Code и _Themes, и ссылка на нее сделана таким образом

фон: URL (../ image /..);

конечно, код выше сидит в файле CSS. У меня все время работает

0 голосов
/ 08 июля 2009

Я установил путь URL-адрес CSS code {background: url (/images/xxx.jpg) без повтора; } и запуск файла в IIS, поэтому необходимо указать веб-сайт по умолчанию для вашего проекта

как запустить тестирование предварительного просмотра тип: http://localhost/default.aspx

это правильный путь на сервере включаемый файл js или css может использовать корневой каталог "/"

веселит Noboyband

0 голосов
/ 28 февраля 2009

У меня была такая же проблема, и это сводило меня с ума. Решение - добавить папку Apps_Theme и скопировать туда изображения. Когда вы публикуете сайт, структура папок сохраняется, и изображения отображаются.

0 голосов
/ 12 декабря 2008

прошло уже много лет с тех пор, как я что-то делал в css, но, возможно, URL (./ images / image.jpg) будет работать?

Edit: Или скорее ~ / format /css/stylesheetname.css или ./format /css/stylesheetname.css в качестве URL-адреса таблицы стилей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...