Asp.net MVC 4.0:如何在 Asp.NET MVC 4.0 中为 JS、CSS 和图像等资产定义单独的 url?
Asp.net MVC 4.0 : How to define seperate url for assets like JS, CSS and Images in Asp.NET MVC 4.0?
我是 asp.net MVC 4.0 的新手,当我使用它开发 Web 应用程序时,我的应用程序在调试模式下正确拉取,但是当我通过 IIS 拉取它时它显示页面内容但没有 CSS 和 JS.
为了让 CSS 和 JS 等所有资源在 IIS 上运行,我还必须定义应用程序的 baseurl。
假设我的 baseURL 是 http://localhost/myapp
然后,在定义 CSS 路径时,我必须提及完整路径。
喜欢,http://localhost/myapp/css/style.css
有没有办法摆脱它。
如果我无法解释这个问题,请让我清楚概念,我会说清楚。
您可以使用相对 URL:
<link href="/myapp/css/style.css" rel="stylesheet">
<script src="/myapp/js/your.js"></script>
您可以选择使用 System.Web.Optimization 助手:
//Render styles:
@Styles.Render("~/myapp/css/style.css")
将呈现 <link href="/myapp/css/style.css" rel="stylesheet">
//Render scripts:
@Scripts.Render("~/myapp/js/your.js")
将呈现 <script src="/myapp/js/your.js"></script>
如果您使用 MVC bundling,您可以为您的资产定义自定义 url:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/your.js").Include(
"~/myapp/js/your.js"));
}
然后在视图中这样使用它:
@Scripts.Render("~/js/your.js")
我更喜欢 Alok Kumar Nikhil 描述的方法
但是如果你想要这样的东西:base_url("CSS1.css")
你可以写一个自定义 html-helper
public static class HtmlExtensions
{
public static IHtmlString BaseUrl<TModel>(this HtmlHelper<TModel> htmlHelper, String FileName)
{
return MvcHtmlString.Create($"<Script src='/a/b/c/{FileName}'></Script>");
}
}
在您的视图中使用它
@Html.BaseUrl("CSS1.css")
我是 asp.net MVC 4.0 的新手,当我使用它开发 Web 应用程序时,我的应用程序在调试模式下正确拉取,但是当我通过 IIS 拉取它时它显示页面内容但没有 CSS 和 JS.
为了让 CSS 和 JS 等所有资源在 IIS 上运行,我还必须定义应用程序的 baseurl。
假设我的 baseURL 是 http://localhost/myapp 然后,在定义 CSS 路径时,我必须提及完整路径。
喜欢,http://localhost/myapp/css/style.css
有没有办法摆脱它。
如果我无法解释这个问题,请让我清楚概念,我会说清楚。
您可以使用相对 URL:
<link href="/myapp/css/style.css" rel="stylesheet">
<script src="/myapp/js/your.js"></script>
您可以选择使用 System.Web.Optimization 助手:
//Render styles:
@Styles.Render("~/myapp/css/style.css")
将呈现 <link href="/myapp/css/style.css" rel="stylesheet">
//Render scripts:
@Scripts.Render("~/myapp/js/your.js")
将呈现 <script src="/myapp/js/your.js"></script>
如果您使用 MVC bundling,您可以为您的资产定义自定义 url:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/your.js").Include(
"~/myapp/js/your.js"));
}
然后在视图中这样使用它:
@Scripts.Render("~/js/your.js")
我更喜欢 Alok Kumar Nikhil 描述的方法
但是如果你想要这样的东西:base_url("CSS1.css")
你可以写一个自定义 html-helper
public static class HtmlExtensions
{
public static IHtmlString BaseUrl<TModel>(this HtmlHelper<TModel> htmlHelper, String FileName)
{
return MvcHtmlString.Create($"<Script src='/a/b/c/{FileName}'></Script>");
}
}
在您的视图中使用它
@Html.BaseUrl("CSS1.css")