从服务器导入 LESS

2023-12-11

在我的 ASP.NET MVC 应用程序中,我有一个返回 LESS 变量的操作。

我想将这些变量导入到我的主 LESS 文件中。

由于 DotLess 只会导入扩展名为 .less 或 .css 的文件,因此推荐的方法是什么?


我发现最简单的解决方案是实施IFileReader.

下面的实现向任何以“~/assets”为前缀的 LESS 路径发出 HTTP 请求,否则我们使用默认的FileReader.

请注意,这是原型代码:

public class HttpFileReader : IFileReader
{
    private readonly FileReader inner;

    public HttpFileReader(FileReader inner)
    {
        this.inner = inner;
    }

    public bool DoesFileExist(string fileName)
    {
        if (!fileName.StartsWith("~/assets"))
            return inner.DoesFileExist(fileName);

        using (var client = new CustomWebClient())
        {
            client.HeadOnly = true;
            try
            {
                client.DownloadString(ConvertToAbsoluteUrl(fileName));
                return true;
            }
            catch
            {
                return false;
            }
        }
    }

    public byte[] GetBinaryFileContents(string fileName)
    {
        throw new NotImplementedException();
    }

    public string GetFileContents(string fileName)
    {
        if (!fileName.StartsWith("~/assets"))
            return inner.GetFileContents(fileName);

        using (var client = new CustomWebClient())
        {
            try
            {
                var content = client.DownloadString(ConvertToAbsoluteUrl(fileName));
                return content;
            }
            catch
            {
                return null;
            }
        }
    }

    private static string ConvertToAbsoluteUrl(string virtualPath)
    {
        return new Uri(HttpContext.Current.Request.Url, 
            VirtualPathUtility.ToAbsolute(virtualPath)).AbsoluteUri;
    }

    private class CustomWebClient : WebClient
    {
        public bool HeadOnly { get; set; }
        protected override WebRequest GetWebRequest(Uri address)
        {
            var request = base.GetWebRequest(address);
            if (HeadOnly && request.Method == "GET")
                request.Method = "HEAD";

            return request;
        }
    }
}

要注册阅读器,请在应用程序启动时执行以下命令:

var configuration = new WebConfigConfigurationLoader().GetConfiguration();
            configuration.LessSource = typeof(HttpFileReader);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从服务器导入 LESS 的相关文章

  • 如何将 ENUM 值从视图转换为字符串到控制器

    所以我已经知道如何获取字符串 整数 十进制 现在我在枚举的这一部分中苦苦挣扎 如何将枚举转换为字符串 Enum statecode apsp Customer BillingAddress StateCode Value Customer
  • 如何通过 ajax 调用控制器并返回 HTML 在 MVC5 中呈现部分视图

    如何使用AJAX加载以html呈现的完整部分视图 所以我只设置div html 我需要 ajax 调用来调用控制器操作 该操作将呈现完整的部分视图 红色 并将其附加到当前加载的视图的末尾 我知道如何附加到 DOM 以及如何进行 AJAX 调
  • 我的 MVC 控制器真的应该了解 JSON 吗?

    JsonResult 类是通过 AJAX 将 Json 作为操作返回给客户端的非常有用的方法 public JsonResult JoinMailingList string txtEmail return new JsonResult D
  • ASP.NET MVC5:想要使用模型绑定更新集合中的多个项目

    所以我有一个用户对象的集合 它应该是可批量编辑的 同时编辑许多用户 我使用实体框架将用户输入保存到数据库中 控制器方法从表单获取的集合为 null 为什么 另外 BindAttribute 是否可以像我的代码中那样与集合一起使用 View
  • .NET Core 2.2共享Cookie导致登录时出现Bad Request错误

    我有 2 个应用程序在它们之间共享 cookie 这是startup cs中的配置 services ConfigureApplicationCookie options gt Cookie settings options Cookie
  • IIS 上的 ASP.NET MVC3 和 Windows Auth 不断重定向到 /Account/Login

    我正在运行 MVC3 和 Windows 身份验证 Web 应用程序 当我部署到 IIS6 时 它运行得很好 直到我遇到需要身份验证的页面 然后 当我在应用程序中没有任何痕迹并且我的 web config 配置为 Windows 身份验证时
  • 维护用户 ID 的最佳实践 (MVC)

    我使用 FormsAuthentication 但添加了自定义 MemberShipProvider 来根据自定义用户表进行验证 所有包含 用户数据 的表都有一个 idUser 列 因此我需要维护用户 id 以便向用户显示他的数据 以前我使
  • MVC3 RenderPartial 跨多个页面缓存

    谁能告诉我是否可以跨多个页面缓存 RenderPartial 我有一个用于用户配置文件的 RenderPartial 除非用户更新其配置文件 否则它实际上不会改变 所以我真的不想每次加载页面时都回去获取他 她的个人资料 我宁愿传递部分内容
  • 如何在aspasp.net MVC中隐藏Webgrid中的列?

    我是 MVC 新手 我使用Webgrid展示一些客户价值 我需要将列及其标题隐藏起来 我该怎么做呢 CSS gridhide visibility hidden Code grid Column Id ID style gridhide 我
  • 添加按钮,该按钮将重定向到 JQGrid 中当前行的“查看页面”

    我正在尝试添加按钮而不是View专栏但我尝试过formatter仍然按钮未加载 但其余列的记录即将到来 下面是我的代码 function grid jqGrid url Location LocationsList1 datatype js
  • 在 SelectList 集合中设置所选项目

    我有一堂具有以下属性的课程 它构建了一个SelectList现有列表中的对象 然后设置所选项目 public SelectList ProviderTypeList get SelectList list new SelectList my
  • MVC 4 文本框未在回发时更新

    我有一个使用 modelview 对象的表单 该对象在提交表单的回发时不会更新文本框值 提交表单时 我编辑绑定到文本框的对象的属性 当表单返回时 对象属性仍然更改 但文本框值不会更改 这就像文本框值被缓存并且不会改变 我该如何解决 文本框默
  • 后退按钮不会导致回发到 MVC 中的控制器操作

    当我在 Win7 上的 IE10 或 Chrome 中单击后退按钮时 它不会到达 MVC 控制器中的断点 IE 开发者工具中的 网络 选项卡显示 304 未修改 并且 Fiddler 未捕获该请求 我期待着回帖 这样我就可以在我的控制器中工
  • MVC 2视图显示错误的模型信息

    我在一个项目中使用 MVC 2 但我遇到了视图问题 在控制器中我有代码 return View calendarDay 如果我调试这一行并检查 calendarDay 它会告诉我 calendarDay Id 属性等于 2 在视图中我有一些
  • 在实体框架中不使用 Dispose 或 using()

    我一路上正在编写一个网络应用程序并学习实体框架 如果我做错了什么 我很好奇 我在查询时没有使用过 dispose 或 using 语句 我的存储库示例 public User GetUserById int sessionId var us
  • ASP.NET MVC - 重写 FormMethod.Get 查询字符串?

    我有一个简单的表单 只有一个文本框和一个提交按钮 该表单基本上将文本框中的值作为查询字符串发送到不同的页面 当我单击提交按钮时 查询字符串采用以下格式 例如 mysite com TargetCode Test1 我希望它以这种格式显示 m
  • 识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

    我正在使用 ASP NET MVC 和 AngularJS 开发一个示例应用程序 在服务器端代码中 我编写了一个Action过滤器属性 其中我需要检查请求是普通请求 浏览器 还是AJAX请求 public override void OnA
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • LESS CSS 在媒体查询中设置变量?

    我正在开发一个专门针对 iPad 的网站 为了使我的网站能够在视网膜显示屏 iPad 和旧版本 iPad 上运行 我想在媒体查询中的 LESS CSS 中设置一个变量 例如 media all and max width 768px rat
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi

随机推荐

  • React Hook 中使用 setInterval() 的 Javascript 闭包

    在下面的示例中 我预计控制台中的计数值将像 UI 中一样增加 然而事实并非如此 该值始终为0 但UI中的值却增加了 我知道这个问题可能与 Javascript Closure 有关 在我的理解中 count应参考中的值useState 自从
  • Angular 4.3.4 破坏了 mdInput 和 md-input-container

    我的团队最近从 4 3 0 升级到 Angular 4 3 3 在这些更改之后 mdInput 和 md input container 不再正常工作 在您单击输入字段之前 动画将按照material angular io componen
  • 在 NHibernate / SQL Server 中自动截断字符串

    我在 SQL Server 2005 数据库中有一个 nvarchar 2000 列 并将其映射到 NHibernate 中 如下所示
  • XE5 Android TBitmap.LoadFromStream 在线程内失败

    我正在使用 Delphi XE5 创建一个简单的 Android 游戏 我有一些资源 PNG 和 Jpeg 我想在我的程序加载所有资源时显示加载屏幕 但我发现将 TBitmap LoadFromFile 或 TBitmap LoadFrom
  • Thymeleaf 表单使用 ArrayList 对象提交

    我编写了一个简单的程序 用于表单提交 并将数据 ArrayList 从表发送到控制器类 提交表单时 数据始终为空 不确定我在这里做错了什么 我几乎花了很多时间来确定问题 但运气不佳 控制器类 我在 Post 方法中总是得到 null pub
  • magento multistore子文件夹没有符号链接

    是否可以设置带有子文件夹 子目录的 magento 多重商店而无需创建符号链接 For example www mainstore www mainstore store1 www mainstore store2 www mainstor
  • Pandas:如何将年度数据相互叠加

    我有一系列按时间值 浮点数 索引的数据 我想获取该系列的块并将它们绘制在彼此之上 举例来说 假设我在 20 周的时间内大约每 10 分钟获取一次股票价格 并且我想通过绘制 20 条股票价格线来查看每周模式 所以我的 X 轴是一周 我有 20
  • Android中计算用户移动速度

    我需要计算用户移动的速度 所以我们需要两件事来计算速度 GPS and Accelerometer 但两者都有其局限性 1 GPS并非始终可用 虽然我始终获取用户的当前位置 但我从Network provider仅而不是来自GPS 2 Ac
  • 使用 magrittr 管道前向运算符传递参数两次

    这是一个让我烦恼的虚拟例子 在vanilla会议 library magrittr test gt is na 1 FALSE test gt nchar gt 3 1 TRUE test gt is na 1 FALSE test gt
  • 对一维数据使用什么聚类算法? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个数组中的数字列表 每个元素的索引是 X 值是 Y 我如何对这些数据进行分
  • Adobe Air - 检查互联网连接

    我正在使用 Adob e Flash CS 5 构建 Air 应用程序 我需要检查互联网连接是否可用 我遇到了这个错误 1172 找不到air net 定义 1046 未找到类型或不是编译时常量 URLMonitor 这是我的代码 impo
  • MySQL:复合索引全文+btree?

    我想要一个查询 它对一个字段进行全文搜索 然后对不同的字段进行排序 想象一下搜索一些文本文档并按发布日期排序 该表大约有 17M 行 它们在日期上或多或少均匀分布 这将在 Web 应用程序请求 响应周期中使用 因此查询最多必须在 200 毫
  • 如何连接到部署到 OpenShift 的 IBM MQ?

    我有一个带有 IBM MQ 的容器 Docker 镜像ibmcom mq 9 2 2 0 r1 暴露两个端口 9443 管理 1414 应用程序 OpenShift 中所有必需的设置均已完成 Pod 服务 路由 有两条路线 每个港口一条 h
  • 什么是整数类型?

    我看到了 golang core 并发现了这个 func make t Type size IntegerType Type IntegerType 和 Type 是什么意思 可以是C 吗 您的函数声明来自builtin包裹 builtin
  • 如何在 Gradle/IntelliJ 中添加测试资源根

    使用 IntelliJ 14 和 Gradle 2 2 中的 idea 插件生成 IntelliJ 项目 我可以通过以下方式添加新的测试源根用于集成测试 idea module testSourceDirs file src integra
  • 如何从 iphone corebluetooth api 列出已配对的蓝牙设备

    我正在尝试列出配对的蓝牙设备 我知道我可以使用retrieveConnectedPeripherals 获取已连接设备的列表 所以我的问题是如何以编程方式从 iphone SDK 获取配对设备 提前感谢大家 Regards Bhaban 你
  • php simplexml_load_file 带有破折号 ( - )

    嗨 我正在努力从 php 中的 xml 文件获取数据 xml 文件在这里 http musicbrainz org ws 2 artist 8bfac288 ccc5 448d 9573 c33ea2aa5c30 inc release g
  • 在 ObjectAnimationUsingKeyFrames 中使用 TemplateBinding

    我尝试设置鼠标悬停在控件上时的背景颜色 我尝试通过视觉状态管理器来做到这一点 我能够运行以下代码
  • form.valid() 不应显示验证文本?

    With Jquery validate required fields are showing popup validation on fileds like below pic 我喜欢这个并且工作得很好 但我检查 form valid
  • 从服务器导入 LESS

    在我的 ASP NET MVC 应用程序中 我有一个返回 LESS 变量的操作 我想将这些变量导入到我的主 LESS 文件中 由于 DotLess 只会导入扩展名为 less 或 css 的文件 因此推荐的方法是什么 我发现最简单的解决方案