2008-12-10 4 views
0

Сайт, над которым я работаю, выполнен в классическом ASP, и я стараюсь сделать это как можно лучше. Я отведенной его в Rails-подобной структуры каталогов:Classic ASP Server.MapPath не работает должным образом

 
app_name 
- app 
    - includes 
    - helpers 
    - lib 
    - partials 
    - public 
    - stylesheets 
    - images 
    - javascripts 

я создал несколько Rails-как хелперы, например:

Function ImageTag(ByVal imageFileName, ByVal altText) 
    path = Server.MapPath(IMAGE_ROOT & imageFileName & ".jpg") 
    ImageTag = "<img src=""" & path & """ title=""" & altText & """ alt=""" & altText & """ />" 
End Function 

Который используется таким образом:

<%= ImageTag("my_pic") %> 

С «IMAGE_ROOT», определенным как «../public/images/» в файле конфигурации. Я занимаюсь разработкой на XP, поэтому сайт устанавливается как виртуальный каталог. Однако изображение вообще не загружается на веб-странице. Он показывает правильный путь к нему, потому что я могу скопировать/вставить его в свой браузер и просмотреть изображение - он просто не появится на странице по какой-то причине. То же самое относится к моей таблице стилей CSS - путь прав, но страница вообще не отображает его.

Любые предложения?

+0

Почему вы сопоставляете свой относительный путь с физическим путем, вы просто используете `IMAGE_ROOT & imageFileName &. .jpg` `без` Server.MapPath() `? – Lankymart 2014-01-09 13:58:37

ответ

-1

Отличный инструмент для использования при устранении этих проблем - это Fiddler. Он покажет вам вызовы и ответы непосредственно перед вашим веб-браузером и сервером. Он работает из коробки с поддержкой IE и FireFox - это просто настройка конфигурации.

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

Fiddler Website

0

-Это может быть проблема с сгенерированным html?
-Вы можете попытаться сделать IMAGE_ROOT абсолютным путем, например, «/ public/images» вместо относительного (если возможно).
-Также вы можете посмотреть журналы IIS, чтобы узнать, получаете ли вы 404 ошибки для изображений и файлов css.

3

Возможно, вы столкнетесь с проблемами, связанными с серверными и веб-каталогами.

Server.MapPath даст вам C:\InetPub\...\public\images\my_pic.jpg, когда вы, вероятно, хотите /public/images/my_pic.jpg. Браузер не может захватить первый с вашего сервера.

Изображение должно быть доступно через ваш домен: localhost/public/images/my_pid.jpg.

Я предполагаю, что вы можете просмотреть изображение, которое вы разрабатываете на той же самой коробке, на которой находится это приложение? Если это так, вы можете просмотреть изображение, потому что он просто открывается как локальный файл браузером. Все остальные должны использовать HTTP-only.

0

Если app_name/приложение является корнем вашего IIS-сайта, то вы должны в app_name/приложение в качестве виртуального каталога вашего сайта IIS. Поскольку это только статический контент, вам также не нужны разрешения на выполнение сценариев .asp.

Смежные вопросы