小编fik*_*tra的帖子

如何从Visual Studio Team Services将静态网站部署到Azure

我有一个现有的网站,我想使用Visual Studio Team ServicesAzure上部署.该网站由静态文件组成,没有ASP.NET或其他任何涉及的内容.

在Visual Studio Team Services中,我创建了一个执行npm installgulp构建的构建.这将生成一个dist包含该网站所有文件的文件夹.在Azure中,一切都设置正确(订阅,Web应用程序,...).

但是,我不确定如何将我的代码推送到Azure.探索VSTS的Release选项卡中的选项,似乎总是需要'工件',但我只有一堆文件.我需要在文件dist夹中发布文件并确保index.html提供服务.

我怎样才能做到这一点?

这个问题是有关这一之一,然而,答案全部状态,从Azure的开始,并没有提及如何使用Visual Studio团队服务部署现有的代码.

azure azure-web-sites azure-devops azure-pipelines azure-pipelines-release-pipeline

3
推荐指数
1
解决办法
2325
查看次数

Spring Cache:根据条件强制更新缓存

我有一个需要缓存的作业列表(按 id)。然而,在某些情况下,拥有最新版本的作业很重要,并且需要绕过缓存(强制更新)。发生这种情况时,新获取的作业应放置在缓存中。

我是这样实现的:

@Cacheable(cacheNames = "jobs", key = "#id", condition = "!#forceRefresh", sync = true)
public Job getJob(String id, boolean forceRefresh) {
    // expensive fetch
}
Run Code Online (Sandbox Code Playgroud)

期望的行为:

  • getJob("123", false) => 返回作业 v1(如果存在,则从缓存中获取)
  • getJob("123", true) => 返回作业 v2(更新版本,从数据库中获取)
  • getJob("123", false)=> 返回作业 v2(更新版本,从缓存中获取

实际上,最后一次调用getJob("123", false)返回 job v1,即陈旧版本。似乎第二次调用(强制更新)不会更新缓存中的值。

我怎样才能在这里实现正确的行为?

缓存配置(使用咖啡因):

CaffeineCache jobs = new CaffeineCache("jobs", Caffeine.newBuilder()
        .expireAfterWrite(1, TimeUnit.MINUTES)
        .maximumSize(100)
        .build());
Run Code Online (Sandbox Code Playgroud)

spring caching spring-boot spring-cache caffeine

3
推荐指数
1
解决办法
1153
查看次数

内容安全策略:Chrome 记录图像资源的 connect-src 错误

我使用以下策略设置内容安全策略(仅报告):

report-uri https://my-company.report-uri.com/r/d/csp/reportOnly?ngsw-bypass=true; default-src 'self'; script-src 'self' https://www.googletagmanager.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://www.google-analytics.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https://s.gravatar.com;
Run Code Online (Sandbox Code Playgroud)

在 Chrome 开发控制台中,记录以下错误:

[仅限报告] 拒绝连接到“https://s.gravatar.com/avatar/0346e37b7fed8cb32404a71dca932fdf?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Ffa.png”,因为它违反了规定以下内容安全策略指令:“connect-src 'self' https://www.google-analytics.com”。

正如您所看到的,请求的资源是一个图像,其 url 在img-srcCSP 策略的指令中被列入白名单。然而,Chrome 报告称该错误违反了该connect-src指令。我不明白为什么当资源显然是图像时,会评估 connect-src 指令而不是 img-src 。

字体 ( https://fonts.gstatic.com ) 和 googletagmanager 脚本 ( https://www.googletagmanager.com/gtag/jsconnect-src ) 也会发生同样的情况,两者都会导致, 而不是font-src或 的问题script-src

在 Firefox 和 Safari 中,不会记录任何错误。

更神秘的是,Chrome不会报告错误,它只将其记录到控制台(report-uri.com 上没有错误的痕迹)。其他(真实的)CSP 错误显示在 report-uri.com 上,因此报告设置没有任何问题。

google-chrome content-security-policy

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

CSS:类的第一个和最后一个相邻的兄弟

我正在努力实现这个目标:

在此输入图像描述

具有值的元素应具有灰色"功能区".具有值的元素具有类selected,没有任何值的元素不具有.

我的HTML看起来像这样:

<div class="row">
    <span>.</span>
    <span>.</span>
    <span class="selected">2</span> <!-- Should be gray & rounded (left) -->
    <span class="selected">3</span> <!-- Should be gray -->
    <span class="selected">2</span> <!-- Should be gray & rounded (right) -->
    <span>.</span>
    <span>.</span>
    <span class="selected">5</span> <!-- Should be gray & rounded (left) -->
    <span class="selected">5</span> <!-- Should be gray & rounded (right) -->
    <span>.</span>
</div>
<div class="row">
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

要完成灰色功能区,我想我需要这些CSS规则:

  1. 具有类的所有元素selected都应具有灰色背景.简单.
  2. 应该舍入一组具有"选定"类的相邻元素的第一个和最后一个元素.不那么容易.

据我所知,没有像CSS这样的CSS选择器:first-of-class.然而,这还不够,因为同一条线上可能存在多个"缎带".我需要类似的东西:first-adjacent-sibling-of-class.

有没有办法用纯CSS实现这一点,还是需要JavaScript?

css css-selectors css3

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

角度材质网格列表:重复一组网格列表图块

我有一个角度材料网格列表.它由一行(跨越4列)和许多"项"行组成,每行包含4个图块.这个 codepen说明了这个问题.

每个项目都应该有自己的行,即对于每个项目,应该渲染4个图块.

要做到这一点,我不能把它ng-repeat放在一个瓷砖上,因为这只会重复一个瓷砖.我尝试将4个ng-repeat磁贴包装在包含它的div中,但这会搞砸布局(在Codepen中:取消注释div).

在此输入图像描述

这是我的代码:

<md-grid-list md-cols="4" md-row-height="4:1" md-gutter="8px">
    <md-grid-tile class="gray" md-colspan="4">
      <div layout="column" layout-fill>this is a static row</div>
    </md-grid-tile>
    <div ng-repeat="item in appCtrl.items">

      <md-grid-tile class="gray">
        <div layout="column" layout-fill>this row</div>
      </md-grid-tile>
      <md-grid-tile class="gray">
        <div layout="column" layout-fill>should repeat</div>
      </md-grid-tile>
      <md-grid-tile class="gray">
        <div layout="column" layout-fill>for every</div>
      </md-grid-tile>
      <md-grid-tile class="gray">
        <div layout="column" layout-fill>item</div>
      </md-grid-tile>
    </div>
</md-grid-list>
Run Code Online (Sandbox Code Playgroud)

关于如何使用重复的瓷砖正确渲染网格列表的任何想法?

html javascript angularjs material-design angular-material

0
推荐指数
1
解决办法
2190
查看次数