是否允许为同一目录中的资源创建单独的 ASP 包?
Are you allowed to create seperate ASP bundles for resources in the same directory?
假设我有一个包含多个 css 文件的目录。有没有办法为同一目录创建和引用多个 ASP 包?
假设您有一个包含多个样式表的文件夹。
我知道您可以像这样通过虚拟路径包含特定文件:
//Bundle1
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css"));
如果我添加另一个包,而这个包包含与前一个包位于同一目录中的样式表怎么办?
//Bundle2
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
现在我已经创建了包,我想引用它们。
我知道如果目录只有一个包,我可以调用以下命令
@Styles.Render("~/Content/themes/base/css", "~/Content/css")
我在 Styles.Render
中遇到的问题是它只接受路径的虚拟路径。假设您在同一目录中创建了多个包(如果可能的话)。您不能使用 Styles.Render
到 select 您想要的捆绑包。你只能给它一条路。有没有另一种方法可以在没有 Styles.Render
的情况下引用您在 BundleConfig 中创建的包?
或者 Styles.Render
是引用 HTML 中任何样式包的唯一方法吗?
Are you allowed to create seperate ASP bundles for resources in the
same directory?
是
How would I reference these bundles with the Styles.Render method?
@Styles.Render("~/Content/CssBundle1")
@Styles.Render("~/Content/CssBundle2")
这里要说明的重要一点是捆绑背后的原因及其预期用途。捆绑的存在是为了减少请求数量并缩短应用程序的加载时间。您可以手动执行此操作,但您需要管理意大利面条式代码。捆绑是为了让一切都模块化并易于组织。
我认为可能存在混淆的地方
StyleBundle("~/Content/magicaunicornsdacningonrainbowsthisnameisrelative")
创建包时,虚拟路径可以任意命名。您将其捆绑在有意义的类别中。
//Bundle1
bundles.Add(new StyleBundle("~/Content/pets").Include(
"~/Content/dog",
"~/Content/cat",
//Bundle2
bundles.Add(new StyleBundle("~/Content/cities").Include(
"~/Content/memphis.css",
"~/Content/bejing.css",
//Bundle3
bundles.Add(new StyleBundle("~/Content/people").Include(
"~/Content/joseph.css",
"~/Content/michael.css",
创建包后,请确保按需要的顺序调用包,仅加载每个页面所需的内容。
@Styles.Render("~/Content/pets", "~/Content/cities")
* LOTS OF STUFF LOADED HERE! BUT YOU DO NOT NEED THE PEOPLE BUNDLE RIGHT AWAY *
@Styles.Render("~/Content/people")
您只需为引用所有需要的文件创建一个不同的包,然后根据需要调用该包。如果您需要打破文件呈现脚本或样式的顺序,那么您有多个包。 MVC 与适当的模块化有很多关系,因此您总是朝着根或奇点努力。
越来越高级
显然你可以提高一个档次。接下来的步骤包括为您的样式包使用 .less 或 .sass 预处理器。这些将有助于非常详细的模块化。接下来,您可以开始使用变量和条件来确定哪些包应该 运行,链接如下。
Or is Styles.Render is the only way to reference any style bundle in
the HTML?
还有其他方法可以通过代码引用 css 文件。例如,您可以编写一个简单的 for loop
来完成编写所需 css 脚本的任务。此外,您可以使用剃刀变量。
资源
Variables in Styles.Render
http://www.asp.net/mvc/overview/performance/bundling-and-minification
假设我有一个包含多个 css 文件的目录。有没有办法为同一目录创建和引用多个 ASP 包?
假设您有一个包含多个样式表的文件夹。
我知道您可以像这样通过虚拟路径包含特定文件:
//Bundle1
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css"));
如果我添加另一个包,而这个包包含与前一个包位于同一目录中的样式表怎么办?
//Bundle2
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
现在我已经创建了包,我想引用它们。
我知道如果目录只有一个包,我可以调用以下命令
@Styles.Render("~/Content/themes/base/css", "~/Content/css")
我在 Styles.Render
中遇到的问题是它只接受路径的虚拟路径。假设您在同一目录中创建了多个包(如果可能的话)。您不能使用 Styles.Render
到 select 您想要的捆绑包。你只能给它一条路。有没有另一种方法可以在没有 Styles.Render
的情况下引用您在 BundleConfig 中创建的包?
或者 Styles.Render
是引用 HTML 中任何样式包的唯一方法吗?
Are you allowed to create seperate ASP bundles for resources in the same directory?
是
How would I reference these bundles with the Styles.Render method?
@Styles.Render("~/Content/CssBundle1")
@Styles.Render("~/Content/CssBundle2")
这里要说明的重要一点是捆绑背后的原因及其预期用途。捆绑的存在是为了减少请求数量并缩短应用程序的加载时间。您可以手动执行此操作,但您需要管理意大利面条式代码。捆绑是为了让一切都模块化并易于组织。
我认为可能存在混淆的地方
StyleBundle("~/Content/magicaunicornsdacningonrainbowsthisnameisrelative")
创建包时,虚拟路径可以任意命名。您将其捆绑在有意义的类别中。
//Bundle1
bundles.Add(new StyleBundle("~/Content/pets").Include(
"~/Content/dog",
"~/Content/cat",
//Bundle2
bundles.Add(new StyleBundle("~/Content/cities").Include(
"~/Content/memphis.css",
"~/Content/bejing.css",
//Bundle3
bundles.Add(new StyleBundle("~/Content/people").Include(
"~/Content/joseph.css",
"~/Content/michael.css",
创建包后,请确保按需要的顺序调用包,仅加载每个页面所需的内容。
@Styles.Render("~/Content/pets", "~/Content/cities")
* LOTS OF STUFF LOADED HERE! BUT YOU DO NOT NEED THE PEOPLE BUNDLE RIGHT AWAY *
@Styles.Render("~/Content/people")
您只需为引用所有需要的文件创建一个不同的包,然后根据需要调用该包。如果您需要打破文件呈现脚本或样式的顺序,那么您有多个包。 MVC 与适当的模块化有很多关系,因此您总是朝着根或奇点努力。
越来越高级
显然你可以提高一个档次。接下来的步骤包括为您的样式包使用 .less 或 .sass 预处理器。这些将有助于非常详细的模块化。接下来,您可以开始使用变量和条件来确定哪些包应该 运行,链接如下。
Or is Styles.Render is the only way to reference any style bundle in the HTML?
还有其他方法可以通过代码引用 css 文件。例如,您可以编写一个简单的 for loop
来完成编写所需 css 脚本的任务。此外,您可以使用剃刀变量。
资源
Variables in Styles.Render
http://www.asp.net/mvc/overview/performance/bundling-and-minification