[英]ASP.NET MVC Web Application can't find href link
默認情況下,普通請求管道不應訪問Views
文件夾的內容。 Views
文件夾位於將由視圖引擎執行的視圖文件( .cshtml
)中。 如果查看~/Views
內的web.config文件,可以看到我們已經注冊了BlockViewHandler
,它阻止了直接文件訪問所有文件。
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode"
type="System.Web.HttpNotFoundHandler" />
</handlers>
您應該考慮將pdf文件移動到應用程序根目錄中的“ Statics
目錄並指向該目錄。
現在,指向該位置
<a href="~/Statics/TermsOfService.pdf">Terms of Service</a>
您可以為目錄指定自己的名稱。 有些人喜歡將其保留在Content
目錄下。 因此,這更多是個人喜好。
在asp.net核心中,默認情況下, wwwroot
目錄是靜態內容主目錄。 因此,您可以將靜態內容保留在其中(這是可覆蓋的)
您可以對views
目錄中的web.config進行更改以允許直接瀏覽,但是更可靠的方法是不污染約定並將靜態資產移動到其自己的文件夾中。 如果絕對要啟用對視圖目錄的直接文件訪問,則可以更新path
屬性值,以告訴mvc禁止僅訪問具有特定擴展名的文件。 這是您將僅阻止.cshtml
文件的方法(因此pdf將起作用)
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode"
type="System.Web.HttpNotFoundHandler" />
</handlers>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.