我的js文件在区域内,我无法访问它们。当我将它们移到MVC区域之外时,我可以访问它。
我尝试了以下内容:
这有效:
<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>
区域文件夹下阻止脚本的文件会有什么不同吗?
答案 0 :(得分:1)
在another Stack Overflow question中找到答案并对其进行调整。
修改/Areas/AreaName/Views/web.config文件以使网络服务器能够提供JS和CSS文件:
<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文件,并禁止提供任何其他文件。
答案 1 :(得分:0)
你试试吗
ResolveUrl(
而不是
Url.Content(
斯特凡诺
答案 2 :(得分:0)
<script type="text/javascript" src='<%: ResolveUrl("~/Scripts/jquery/_Roles.js") %>'>
</script>
答案 3 :(得分:-3)
为什么要将您的脚本放在Regions部分?我有一个带有区域的mvc站点,但我仍然将我的脚本保存在Scripts文件夹中。
我的建议是重新考虑您以这种方式组织内容的原因,并考虑将所有外部.js文件移至Scripts文件夹。