小编Jul*_*iën的帖子

Bootstrap 4错误"Bootstrap下拉需要Popper.js",使用Aurelia CLI和Require.js

我在使用requirejs和使用TypeScript的Aurelia CLI应用程序(v0.31.1)中配置Bootstrap 4 beta时遇到问题.尝试了几个配置变化后,我继续收到以下控制台错误:

未捕获的错误:Bootstrap下拉列表需要Popper.js

以下是重现的步骤.首先,安装包:

$ npm install --save jquery bootstrap@4.0.0-beta popper.js
Run Code Online (Sandbox Code Playgroud)

接下来,我配置了aurelia.json:

  "jquery",
  {
    "name": "popper.js",
    "path": "../node_modules/popper.js/dist/umd",
    "main": "popper"
  },
  {
    "name": "bootstrap",
    "path": "../node_modules/bootstrap/dist",
    "main": "js/bootstrap.min",
    "deps": [
      "jquery",
      "popper.js"
    ],
    "exports": "$",
    "resources": [
      "css/bootstrap.css"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

请注意上面的配置中:

  • popper.js在bootstrap之前注册
  • 使用UMD模块
  • popper.js被设置为jstery旁边的bootstrap的依赖项

最后,在我的app.ts中:

import 'bootstrap';
Run Code Online (Sandbox Code Playgroud)

使用此配置,使用构建au build工作正常.但运行时,使用au run --watch我得到以下控制台错误:

未捕获的错误:引导下拉需要Popper.js(https://popper.js.org)(defaults.js:19)
未捕获的错误:引导下拉需要Popper.js(https://popper.js.org)(引导. min.js:6)
...再进一步:
未捕获TypeError:plugin.load不是Module的函数.(defaults.js:19)

不幸的是,Bootstrap 4文档只提到了webpack上的说明.搜索Aurelia的Gitter.im频道和StackOverflow也是如此.我找不到关于Aurelia CLI和Require.js的样本.最后,Google点击仅显示嵌入alpha版本的示例(依赖于'tethering'而不是'popper').

关于SO的类似问题,它们有相同的错误,但不适用于我的情况:

requirejs typescript aurelia aurelia-cli bootstrap-4

13
推荐指数
3
解决办法
3万
查看次数

StringSegment类的目的是什么?

Microsoft.Extensions.Primitives包lib中,有一个类StringSegment,注释表明它是:

子串的优化表示.

我没有意识到这个特殊的类,直到我发现了aspnet公告#244,声明:Microsoft.Net.Http.Headers转换为使用StringSegments.

仍然,看看StringSegment类的实现,我没有看到它实际服务的目的.我看到一个缓冲区,我想这可能表示对部分字符有更好的操作(也许是'段'部分?).我还看到几个辅助函数,它们与常规字符串中已有的行为密切相关(如果不相同),例如StartsWith/Endswith,Substring等.aspnet -core文档完整地列出了这些函数,但是这也缺乏上下文关于"为什么"它应该被使用.

那么该StringSegment课程的目的到底是什么以及适用于哪种情景呢?

当我操作字符串时,在我的应用程序代码中调用类是否有用?我们能有一个例子,它会有益吗?

c#

12
推荐指数
1
解决办法
2152
查看次数

在ASP.NET Core中,在控制器的OnActionExecuting之前执行全局过滤器

在ASP.NET Core 2.0应用程序中,我尝试OnActionExecuting 执行Controller的变体之前执行全局过滤器.预期的行为是我可以在全局之前准备一些东西并将结果值传递给控制器​​.然而,当前的行为是执行的顺序被设计颠倒了.

文档告诉我默认的执行顺序:

从Controller基类继承的每个控制器都包含OnActionExecuting和OnActionExecuted方法.这些方法包装为给定操作运行的过滤器:在任何过滤器之前调用OnActionExecuting,并在所有过滤器之后调用OnActionExecuted.

这导致我解释Controller OnActionExecuting在任何过滤器之前执行.说得通.但是文档还声明可以通过实现来覆盖默认顺序IOrderedFilter.

我尝试在过滤器中实现这一点是这样的:

public class FooActionFilter : IActionFilter, IOrderedFilter
{
    // Setting the order to 0, using IOrderedFilter, to attempt executing
    // this filter *before* the BaseController's OnActionExecuting.
    public int Order => 0;

    public void OnActionExecuting(ActionExecutingContext context)
    {
        // removed logic for brevity
        var foo = "bar";

        // Pass the extracted value back to the controller
        context.RouteData.Values.Add("foo", foo);
    }
}
Run Code Online (Sandbox Code Playgroud)

此过滤器在启动时注册为:

services.AddMvc(options …
Run Code Online (Sandbox Code Playgroud)

c# action-filter .net-core asp.net-core

12
推荐指数
1
解决办法
4566
查看次数

在Influx中查询特定键的最新时间戳(MAX/Last)

使用InfluxDB(v1.1),我有一个要求,我想获得特定密钥的最后一个入口时间戳.无论存储哪个测量值,无论这个值是多少.

设置很简单,在这里我有三个测量:location,networkusage.
只有一个关键:device_id.

在伪代码中,这将是这样的:

# notice the lack of a FROM clause on measurement here...
SELECT MAX(time) WHERE 'device_id' = 'x';
Run Code Online (Sandbox Code Playgroud)

问题:查询这个问题最有效的方法是什么?

我想要这个的原因是会有一个分散的同步过程.某些设备可能在过去一小时内已更新,而其他设备未在几个月内更新.能够为设备(密钥)获得明确的"最后更新"时间戳将允许我更有效地将新点存储到Influx.

我也注意到有关InfluxDB的GitHub仓库(#5793)的类似讨论,但问题是没有任何字段/密钥过滤.这正是我想要的:获取特定密钥的"最后"条目.

influxdb

8
推荐指数
3
解决办法
9935
查看次数

在 TypeScript 中从 URL 动态导入远程 ES 模块

我在玩Observable 笔记本并喜欢它。现在我想在我的网络应用程序中嵌入一个笔记本。使用 vanilla Javascript 和 Javascript 模块效果很好:

<script type="module">
  import {Runtime, Inspector} from "https://cdn.jsdelivr.net/npm/@observablehq/runtime@4/dist/runtime.js";
  import notebook from "https://api.observablehq.com/d/d64beea6bedb0375.js?v=3";
  new Runtime().module(notebook, Inspector.into(document.body));
</script>
Run Code Online (Sandbox Code Playgroud)

当我尝试通过 TypeScript 中的远程 URL 导入模块时,出现编译错误:

// error: Cannot find module 'https://api.observablehq.com/d/d64beea6bedb0375.js?v=3'
import notebook from 'https://api.observablehq.com/d/d64beea6bedb0375.js?v=3';
Run Code Online (Sandbox Code Playgroud)

我尝试使用 忽略编译时错误// @ts-ignore,但它们在运行时发生。我也在研究import-http Webpack 插件,但这似乎仍然无法解决编译时错误。

我完全理解这并非特定于 Obervable,而是与 TypeScript 和/或 Webpack 更相关。然而,特定于 Observable 的替代品也将受到赞赏。

所以,我的问题是:如何在 TypeScript 中动态导入远程/外部 ES 模块?这样我就可以重现类似的东西:

// url = 'https://api.observablehq.com/d/d64beea6bedb0375.js?v=3';

public async foo(url: string): Promise<void> {
  const notebook = await import(url);

  const runtime = …
Run Code Online (Sandbox Code Playgroud)

typescript webpack es6-modules observablehq

8
推荐指数
1
解决办法
731
查看次数

在 Influx Flux 中附加计算字段(百分比)并与不同数据集的结果相结合

我正在努力处理 Flux 中的 Influx 2 查询,了解如何将两个不同集(表)中的数据连接和映射到特定的所需输出。

我当前的 Flux 查询是这样的:

data = from(bucket: "foo")
    |> range(start:-1d)
    |> filter(fn: (r) => r._measurement == "io")
    |> filter(fn: (r) => r["device_id"] == "12345")
    |> filter(fn: (r) => r._field == "status_id" )

    # count the total points
    totals = data
    |> count(column: "_value")
    |> toFloat()
    |> set(key: "_field", value: "total_count")

    # calculate the amount of onlines points (e.g. status = '1')
    onlines = data
    |> filter(fn: (r) => r._value == 1)
    |> count(column: …
Run Code Online (Sandbox Code Playgroud)

flux influxdb influxdb-2

6
推荐指数
0
解决办法
1428
查看次数

在VS2013中将Azure Single-Sign-On添加到现有的MVC应用程序

我一直在探索Azure Active Directory服务,并很高兴将任意ASP.NET MVC网站连接到它是多么容易.我在Visual Studio 2012中对此进行了实验,并且一切正常.特别是使用VS2012 的Identity and Access Tool扩展.

现在,这里有一个棘手的部分:不过这个工具已被弃用,不支持,也不适用于Visual Studio 2013.

关于这个问题有几个MSDN文档,比如这个优秀的教程,只有我发现它们都针对VS2012和前面提到的工具.对于新项目,该过程在创建新的Web应用程序时"简化".但我不想要一个新的应用程序 - 我想在VS2013中连接现有的应用程序.

现在的问题是:是否有一种"体面"的方式将Azure ActiveDirectory(尤其是单点登录功能)集成到Visual Studio 2013中的现有ASP.NET MVC 5 Web应用程序中?

至少与I&A工具一样简单,但当然不需要重新创建或迁移我的整个应用程序.

asp.net-mvc azure single-sign-on visual-studio-2013

5
推荐指数
1
解决办法
1158
查看次数

RavenDB ETL 到 SQL,如何将整个文档('this')存储在 jsonb 列中?

在 RavenDB 5.4+ 中,我想使用 Raven 的 Npgsql 内置工厂配置一个SQL ETL 任务,将数据卸载到 PostgreSQL 数据库。我遇到的问题是我希望将整个文档 ( this) 存储在jsonb数据列中。

问题:如何实现将整个文档(例如this下面的 ETL 转换示例中的)存储到 Postgres?
我的目标是不必Foo手动指定对象的字段/列。

Postgres 表示例:

create table public.foo
(
    id   text,
    data jsonb
);
Run Code Online (Sandbox Code Playgroud)

RavenDB 中的 ETL 转换脚本示例:

loadToFoo ({
    id: id(this),
    data: this // <-- the issue
});
Run Code Online (Sandbox Code Playgroud)

这会导致异常:

Npgsql.PostgresException (0x80004005): 42804: 列“data”的类型为 jsonb,但表达式的类型为文本

我尝试过以下替代方案:

data: JSON.parse(this)

Error: 
    System.ArgumentException: Expected string but got Symbol
---
data: JSON.stringify(this)

Error:
    Npgsql.PostgresException (0x80004005): 42804: column "data" …
Run Code Online (Sandbox Code Playgroud)

c# postgresql npgsql jint ravendb

5
推荐指数
1
解决办法
127
查看次数

TFS2015在"找不到文件"的所有命令行命令上构建失败

在Team Foundation Server 2015 Build(内部部署)中,我遇到运行简单命令行命令的问题.所有命令行任务都会失败,并显示以下错误:"找不到文件:".

以下面的构建定义为例:

在此输入图像描述

这是使用内部部署的Build Agent执行的,并且会在日志中失败并出现以下异常:

BUILD FAILED
2016-01-20T12:04:47.5127709Z ##[warning]Filename doesn't indicate a full path to a executable file.
2016-01-20T12:04:47.5127709Z Executing the following commandline. (workingFolder = D:\_work\2\s)
2016-01-20T12:04:47.5127709Z date 
2016-01-20T12:04:47.5127709Z Error message highlight pattern: 
2016-01-20T12:04:47.5127709Z Warning message highlight pattern:      
2016-01-20T12:04:47.5439748Z ##[error]File not found: date
Run Code Online (Sandbox Code Playgroud)

当然这是一个简化的例子,我只想使用date /t命令输出当前日期.但我已经尝试了所有普通的命令行命令,如出现相同的问题dir,time,pathMSDN不提供任何故障信息就可以了,比执行的工具必须驻留在PATH变量等.

该问题并非特定于一个构建定义或回购; 它也可以在其他人身上复制.

构建作为内置的svc_tfsbuild帐户运行.

我或许认为这可能是一个简单的设置,或者 - 疯狂猜测 - 与权利相关的问题,但找不到任何文档在哪里查看或检查什么.任何帮助,将不胜感激.

tfs continuous-integration tfsbuild tfs-2015

4
推荐指数
1
解决办法
4981
查看次数

就性能而言,使用 CloudBlob.ExistsAsync 还是 catch StorageException.BlobNotFound?

我想从 Azure Blob 存储下载一个可能尚不存在的文件。我正在寻找最可靠和最高效的方式来处理这个问题。为此,我找到了两个都有效的选项:

选项 1:使用 ExistsAsync()
持续时间:这大约需要 1000~1100 毫秒才能完成。

if (await blockBlob.ExistsAsync())
{
    await blockBlob.DownloadToStreamAsync(ms);
    return ms;
}
else
{
    throw new FileNotFoundException();
}
Run Code Online (Sandbox Code Playgroud)

选项 2:捕获异常
持续时间:每次至少需要 +1600 毫秒。

try
{
    await blockBlob.DownloadToStreamAsync(ms);                
    return ms;      
}
catch (StorageException e)
{
    // note: there is no 'StorageErrorCodeStrings.BlobNotFound'
    if (e.RequestInformation.ErrorCode == "BlobNotFound")
        throw new FileNotFoundException();

    throw;
}
Run Code Online (Sandbox Code Playgroud)

这些指标是通过 webapi 上的简单 API 调用完成的,它使用上述函数并返回适当的消息。我已经通过 Postman 在这里手动测试了端到端场景。当然,这种方法有一些开销。但总而言之, ExistsAsync() 操作似乎因此至少节省了 500ms。至少在我的本地机器上,同时调试。这有点值得注意,因为DoesServiceRequestExistsAsync() 上的属性似乎表明这是另一个需要进行的昂贵的 http 调用。

此外,ExistsAsync API 文档没有说明它的用法或任何副作用。

因此,根据穷人的测试得出的直率结论会导致我选择不。1、因为:

  • 在调试/本地主机中速度更快(捕获;没有说明在生产中编译) …

c# performance azure azure-storage-blobs

4
推荐指数
1
解决办法
2418
查看次数

在 iTextSharp PdfPTable 中的图像网格之间设置边距或单元格间距

我正在尝试使用 iTextSharp (v5.5.10) 渲染带有图像网格的 PDF。图像都将具有相同的尺寸,并应均匀分布在一页上。

但是,使用下面提到的代码,我很难设置适当的边距或单元格之间的间距。

从视觉上看,这意味着预期的结果是这样的:

预期的

黄色高亮线都在那里我得到以下结果而不是问题:

实际的

请注意图像之间没有空格?这是基于我的以下代码:

   public void CreateGridOfImages(string outputFilePath)
    {
        // note: these constants are in millimeters (mm), 
        // which are converted using the ToPoints() helper later on
        const float spacingBetweenCells = 7;
        const float imageWidth = 80;
        const float imageHeight = 80;
        const string[] images = new [] { "a.jpg", "b.jpg", "c.jpg" };

        using (var stream = new FileStream(outputFilePath, FileMode.CreateNew, FileAccess.Write, FileShare.None))
        {
            var document = new iTextSharp.text.Document(PageSize.B2, 0f, 0f, 0f, 0f);

            var …
Run Code Online (Sandbox Code Playgroud)

c# pdf-generation itext

2
推荐指数
1
解决办法
8919
查看次数