独立的cshtml相对路径资源没有加载

时间:2016-04-30 15:23:16

标签: css asp.net-mvc razor

早上好,

我有一个独立的cshtml文件,它没有加载js,css,img,资源文件。

独立我指的是一个没有使用布局的csthml,主要是带有一点点剃刀的HTML。

在我的页面顶部,我取消了布局的使用,然后开始我的HTML。

@model Nop.Web.Views.LandingPages.Models.HalfAppt
@{ 
   Layout = null;
 }

<!DOCTYPE html>
<html lang="en">
<head>
    <title>XYZ Page</title>
    <meta charset="utf-8">
    <meta name="format-detection" content="telephone=no"/>
    <link rel="icon" href="images/fb/favicon.ico" type="image/x-icon">
    <link href='https://fonts.googleapis.com/css?family=Raleway:400,700,800' rel='stylesheet' type='text/css'>

    <link rel="stylesheet" href="css/fb/grid.css">
    <link rel="stylesheet" href="css/fb/style.css">
    .....etc.....

现在专门针对链接,如果这是一个html页面...我已经做了一个测试...路径将解决。

然而剃刀合成器对我来说并不适用。我尝试过以下方法:

  

绝对路径......

<link href="http://localhost:1234/views/landingpages/images/fb/favicon.ico">
  

各种相对路径,如

<link href="~/Views/LandingPages/images/fb/favicon.ico" >
<link href="images/fb/favicon.ico" >
<link href="/images/fb/favicon.ico" >
<link href="../../../../Views/LandingPages/images/fb/favicon.ico" >
  

剃刀

<link href="@Url.Content(~/Views/LandingPages/images/fb/favicon.ico)" >

这是我的文件夹结构:

enter image description here

1 个答案:

答案 0 :(得分:1)

图像,图标,css文件等的常用位置位于/Content文件夹内的某个位置,默认情况下,该文件夹是从MVC模板生成的项目中创建的。如果有必要,也可以在那里创建子文件夹。

/Views文件夹在MVC中很特殊,默认情况下,其内容无法从外部访问。 (其中的.cshtml文件是通过Razor引擎呈现的,不是按字面意思返回的。)

如果您确实要忽略此标准,请参阅this question & answers。我仍然不建议这样做,只是为了让网站现在或将来都能维护和理解为合作开发者。