2012-02-27 94 views
17

在我的mvc 3應用程序中,假設我有像\Views\Account\js\custom.js這樣的文件夾結構,請如何將該文件添加到我在Account\index.cshtml中的視圖中?MVC - 在視圖文件夾中訪問css,image,js文件

我曾嘗試:

<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> 

,但似乎沒有任何工作,螢火總是說在這一點不像我指定的那些地方找不到404文件。 (有時它增加了路徑中的額外視圖:-s)

我知道我可以把它放在我自己的文件夾的視圖之外,並像/myFolder/myfile.js那樣訪問它,它可以工作,但是這個JavaScript文件與發生的事情非常密切相關在帳戶視圖,沒有別的,所以它是有道理的,把它放在那裏..

謝謝。

回答

15

web.config文件在/瀏覽文件夾的所有限制默認訪問文件夾中的文件:

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

您可以更改該設置,但它可能更安全o以保證不將資產存儲在視圖文件夾中。

+0

hm ...是的,修改web.config的特定行爲似乎是一個愚蠢的事情..我只會把這個js文件與我的js文件的其餘部分..非常感謝。 – LocustHorde 2012-02-27 17:02:15

+8

請參閱http://stackoverflow.com/questions/604883/where-to-put-view-specific-javascript-files-in-an-asp-net-mvc-application關於如何明確允許只有js文件從Views文件夾中提供。 – slolife 2013-04-25 17:47:54

0

最好的辦法是使用T4MVC - http://mvccontrib.codeplex.com/wikipage?title=T4MVC 無需使用魔法串...

+0

是的,我已經有了,但麻煩的是,我的js文件是不是在''scripts''或''content''文件夾,而是在視圖文件夾本身內,並且我沒有任何東西可以獲取該文件。 – LocustHorde 2012-02-27 16:50:35

+0

您可以更改T4MVC附帶的T4設置文件,以包含腳本和內容以外的文件夾。 – 2012-02-27 17:27:48

+0

我明白了......但即便如此,正如[pjumbl的答案](http://stackoverflow.com/a/9468864/435867)中所述,它仍然無法訪問!謝謝你。 – LocustHorde 2012-02-27 18:08:27

2

你可以使用一個UrlHelper

<script src="@Url.Content("~/view/account/js/custom.js")" type="text/javascript"></script> 
+0

嗨,我給了這個去,但它仍然是作爲404 ..我試圖查看視圖源上的解決路徑,它看起來是正確的..所以可能[pjumble的回答](http:// stackoverflow。 com/a/9468864/435867)是正確的:( – LocustHorde 2012-02-27 17:01:09

0

添加這下您的看法web.config文件處理程序部分

<add name="JavaScriptHandler" path="*.js" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />