Могу ли я развернуть файл javascript в зонах MVC? - PullRequest
5 голосов
/ 09 ноября 2011

У меня есть js-файлы внутри областей, и я не могу получить к ним доступ.Когда я перемещаю их за пределы областей MVC, я могу получить к ним доступ.

Я пробовал следующее:

  • Различные имена файлов js - не решает проблему
  • Проверьте, существуют ли они на сервере - они делают
  • Доступ к файлу напрямую из диспетчера IIS на сервере - они не открываются и не возвращаются не найдены
  • Доступ к тем же файлам напрямую из диспетчера IIS на сервере, но когда файлы находятся в каталоге скриптов - ониоткрыть в браузере
  • Использовал проверку маршрута - Когда я пытаюсь получить доступ к файлу, он не открывает отладку маршрута и вместо этого просто говорит "404"

Это работает:

<script src="@Url.Content("~/Scripts/jquery/_Roles.js")" type="text/javascript"></script>

Это не работает:

<script src="@Url.Content("~/Areas/Administration/Scripts/Roles/_Roles.js")" type="text/javascript"></script>

Может ли быть что-то другое в файлах в папке Areas, которые блокируют сценарии?

Ответы [ 4 ]

1 голос
/ 27 апреля 2015

Нашел ответ в другом вопросе переполнения стека и настроил его для областей.

Измените файл /Areas/AreaName/Views/web.config, чтобы веб-сервер мог обслуживать JS и CSSfiles:

<system.web>
    <httpHandlers>
        <add path="*.js" verb="GET,HEAD" type="System.Web.StaticFileHandler" />
        <add path="*.css" verb="GET,HEAD" type="System.Web.StaticFileHandler" />
        <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <!-- other content here -->
</system.web>

<system.webServer>
    <handlers>
        <remove name="BlockViewHandler"/>
        <add name="JavaScript" path="*.js" verb="GET,HEAD" type="System.Web.StaticFileHandler" />
        <add name="CSS" path="*.css" verb="GET,HEAD" type="System.Web.StaticFileHandler" />
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
    <!-- other content here -->
</system.webServer>

Это позволит обслуживать файлы .js и .css и запретит обслуживание чего-либо еще.

0 голосов
/ 10 ноября 2011
<script type="text/javascript" src='<%: ResolveUrl("~/Scripts/jquery/_Roles.js") %>'>
</script>
0 голосов
/ 10 ноября 2011

Зачем помещать свои сценарии в раздел Области? У меня также есть сайт MVC с областью, но я все еще храню свои скрипты в папке Scripts.

Я предлагаю переосмыслить причину организации своего контента таким образом и рассмотреть возможность перемещения всех внешних файлов .js в папку Scripts.

0 голосов
/ 09 ноября 2011

Вы пробовали

ResolveUrl(

вместо

Url.Content( 

Stefano

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