Загрузка XML-файла, который должен находиться в том же каталоге, что и view в MVC3

#flash #asp.net-mvc-3

#flash #asp.net-mvc-3

Вопрос:

Веб-дизайнер в проекте использует Flash Gallery, которая загружает images.xml досье. SWF ожидает, что он будет находиться в том же каталоге, что и файл .html. Поэтому, если я нахожусь в действии /Public/Home/Gallery , он будет ожидать images.xml быть в at Public/Home .

Как мне разрешить Flash SWF загружать файл? У меня нет доступа к исходному коду, поэтому я не могу изменить поведение SWF.

Ответ №1:

Ой, тебе действительно стоит посмотреть альтернативные галереи…

Есть несколько проблем с тем, который вы выбрали:

  • Доступ к папке views заблокирован для защиты содержимого представлений на стороне сервера (чтобы предотвратить их случайную загрузку в виде файла и т. Д.)
  • С помощью маршрутов и действий по умолчанию для доступа к одной и той же странице может быть несколько URL-адресов
  • Как это работает со строками запроса?

Т.е. где он будет выглядеть при следующих сценариях?

  • /Home/Index
  • /Home/Index/
  • /Home/Index?Страница = 1
  • /Home/Index/?Страница= 1

Все это указывает на одно и то же действие.

Вы могли бы сделать что-то вроде этого:

 <system.webServer>
  <rewrite>
    <rules>
      <rule name="Rewrite images.xml" stopProcessing="true">
        <match url=".*/images.xml" />
        <action type="Rewrite" url="Content/{R:0}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
  

При этом перепишите запрос на /Home/Index/images.xml будет переписан (прозрачно для веб-браузера) в /Content/Home/Index/images.xml . Но у вас все еще есть проблема с завершающими косыми чертами, строками запроса, действиями по умолчанию.

Существует множество потрясающих плагинов jquery для перехода в галереи, которые намного лучше и не так фатально испорчены.