MVC - Доступ к файлам css, image, js в папке просмотра - PullRequest
18 голосов
/ 27 февраля 2012

В моем приложении mvc 3, при условии, что у меня есть структура папок, такая как \Views\Account\js\custom.js Как мне добавить этот файл в мое представление в Account\index.cshtml, пожалуйста?

Я пробовал:

<script src="js/custom.js" type="text/javascript"></script>
<script src="/views/account/js/custom.js" type="text/javascript"></script>
<script src="~views/account/js/custom.js" type="text/javascript"></script>

но, похоже, ничего не работает, firebug всегда говорит, что файл 404 не найден в местах, которые не похожи на те, которые я указываю. (иногда это добавляет дополнительный вид в пути: -s)

Я знаю, что могу поместить его за пределы представления в моей собственной папке и получить к нему доступ, как /myFolder/myfile.js, и это будет работать, но этот файл javascript очень тесно связан с тем, что происходит в представлении учетной записи, и никак иначе, поэтому смысл поставить его туда ..

спасибо.

Ответы [ 4 ]

16 голосов
/ 27 февраля 2012

Файл web.config в папке / Views ограничивает любой доступ к файлам в папке по умолчанию:

<httpHandlers>
  <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

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

2 голосов
/ 27 февраля 2012

Вы можете использовать UrlHelper:

<script src="@Url.Content("~/view/account/js/custom.js")" type="text/javascript"></script>
0 голосов
/ 23 марта 2017

Добавьте это в раздел представлений web.config.

<add name="JavaScriptHandler" path="*.js" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
0 голосов
/ 27 февраля 2012

Лучше всего использовать T4MVC - http://mvccontrib.codeplex.com/wikipage?title=T4MVC Не нужно использовать магические струны ...

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