小编DaS*_*rer的帖子

如何合并.gitlab-ci.yml中的序列?

我试图在GitLab CI中设置几个任务时删除一些冗余.作为(大大)简化的例子,我有两个涉及调用的工作apt-get update:

job1:
  before_script:
    - apt-get update
    - apt-get install foo

job2:
  before_script:
    - apt-get update
    - apt-get install bar
Run Code Online (Sandbox Code Playgroud)

不是重复的忠实粉丝,我希望我能够通过锚点帮助"清理"yaml ,如下所示:

.update: &update
  before_script:
    - apt-get update

job1:
  <<: *update
  before_script:
    - apt-get install foo

job2:
  <<: *update
  before_script:
    - apt-get install bar
Run Code Online (Sandbox Code Playgroud)

但是,似乎这些before_script节没有与之合并*update.相反,我发现后者被覆盖了.这与GitLab CI文档以及维基百科上的示例形成鲜明对比.

通过一些实验,我设法得到以下运行:

.update: &update apt-get update

job1:
  before_script: 
    - *update
    - apt-get install foo

job2:
  before_script: 
    - *update
    - apt-get install bar …
Run Code Online (Sandbox Code Playgroud)

yaml gitlab-ci

12
推荐指数
2
解决办法
2865
查看次数

双引号,单引号和无引号的假设

在bash中:

使用双引号

echo "*" #Globbing is never done
echo "$variable" # Variable expansion is always done
echo "$(command)" # command expansion is always done
Run Code Online (Sandbox Code Playgroud)

使用单引号

echo '*' #Globbing is never done 
echo '$variable' # Variable expansion is never done
echo '$(command)' # command expansion is never done
Run Code Online (Sandbox Code Playgroud)

不使用引号

echo * #Globbing always done.
echo $variable; # Variable expansion is always done
echo $(command) # command expansion is always done
Run Code Online (Sandbox Code Playgroud)

这适用于所有命令吗?

bash

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

Go缓存DNS查找?

我正在构建一个测试爬虫,并想知道Go(golang)是否缓存DNS查询.我没有在dnsclient中看到有关缓存的任何信息.这似乎是添加到任何爬虫以防止大量额外DNS查询的重要事情.

Go(1.4+)是否缓存DNS查找?

如果没有,debian/ubuntu/linux,windows或darwin/OSX是否在网络级别进行任何缓存从中受益?

dns caching go

9
推荐指数
2
解决办法
5828
查看次数

访问grails gsp中的http请求参数

我正在使用grails开发一个Web应用程序,其中点击电子邮件用户中的链接重定向到我的grails网页.我的要求是访问我在gsp页面上的电子邮件链接中传递的http请求参数.

例如: - 我已通过链接http://example.com/testpage?a=something&b=12345,当用户点击此链接时,他会重定向到http://example.com/testpage,然后我可以从请求中获取参数值.
喜欢a=somethingb=12345.提前致谢.

grails http request

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

为什么304状态代码算作"重定向?"

我目前正在尝试了解304/Not修改的确切条件是否符合3xx范围的HTTP状态代码类.RFC 1945,秒.9.3RFC 2616,sec.10.3都阅读:

此类状态代码指示用户代理需要采取进一步操作才能完成请求.

虽然"从客户端的本地缓存加载"显然是"进一步的行动",但我很难看到这是HTTP的意义上的重定向.我在字面上读这个吗?

http http-status-codes http-redirect http-status-code-304

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

客户端的HTTP状态代码已过期

我正在努力使REST API不再总是响应,如果出现问题,将在返回的JSON中STATUS: 200 OK包含一个error密钥,并在出现问题时尝试使用正确的状态代码。

到目前为止,我已经将服务器的大部分移动到了正确的状态代码 200, 201, 400, 401, 403, 404, 500, 501, and 503

目前,我正在尝试找出最有效的方法来拒绝过时的客户端对API调用的访问。目前,我正在发送使用授权令牌编码的客户端版本。

我被困在使用状态码之间426, and 412。426状态代码的标题似乎就像我想要的用例,但是描述让我有些担心。 412如果我将版本控制从授权令牌中移开,并将其放在自己的标头中,这似乎是合适的。

这是我的第一个REST API,并且效果很好,我只是想将其转换为遵循最佳实践。所以我有点困惑。

TLDR;

  • 我是否应该将版本控制移至标题并使用状态412
  • 我应该使用状态码426
  • 我在这里应该缺少用于请求客户端更新的代码吗?

注意:我的客户端不是Web浏览器。它是一种移动设备。

rest http

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

无法在MySQL中创建FOREIGN KEY CONSTRAINT

我在Ubuntu中使用phpMyAdmin 3.5.8.1deb1创建了我的MySQL数据库.

而不是我的所有表都是InnoDB,我不能添加外键,这是一个例子:

ALTER TABLE element ADD CONSTRAINT FK_element_id_user FOREIGN KEY (id_user) REFERENCES user(id) ON DELETE SET NULL ON UPDATE CASCADE;
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,我收到此错误:

#1005 - 无法创建表'tpw.#sql-4d8_e2'(错误号:150)(详情......)

当我点击细节时,我得到了这个:

InnoDB文档支持事务,行级锁定和外键

我试图在关系视图中手动添加FK

mysql foreign-keys phpmyadmin

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

包含在Qt Creator中添加外部库的路径?

我试图将预编译的(MSVC2012)OpenCV静态库包含到Qt Creator中,但我不确定包含该路径的内容是什么: http://i.stack.imgur.com/Pmsqq.png

这是我下载的预编译OpenCV文件的图像: http://i.stack.imgur.com/vNRNt.png

有3个目录:bin包含DLL,lib包含小的lib文件(2 kb),因此QtCreator可以理解DLL,而staticlib包含大型lib文件(1 mb),这些是我试图链接的静态库.

库文件/路径就像C:\opencv\build\x86\vc11\staticlib\opencv_features2d247d.lib,对吧?大约有50个lib文件.我是否需要手动操作?

c++ qt opencv qt-creator

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

HTTP 参数名称中的下划线与破折号

我熟悉在 URL 路径中使用连字符分隔单词的约定。参数名称如何,例如在 a 中<form>

<form>
  <input name="my_special_field">
</form>
Run Code Online (Sandbox Code Playgroud)

那更好还是my-special-field?我见过谷歌在分析中使用下划线utm_campaign和其他参数名称。下划线读起来会好一些,并且允许在名称 ( field_for_5-16-17) 中偶尔使用连字符。但是连字符肯定是 URL 路径的约定。

在 HTTP 参数名称中分隔单词的约定是什么?

forms http url-parameters web http-parameters

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

当没有返回与缓存相关的标头时,浏览器是否会执行缓存响应?

我有一个简单的问题。我用谷歌搜索但没有找到答案。

我有一个页面。我想禁用页面内容的缓存。

是的。我可以添加缓存控制指令,例如

Cache-Control: no-cache, no-store, must-revalidate, max-age: 0
Run Code Online (Sandbox Code Playgroud)

但问题是:如果没有与返回的缓存相关的 HTTP 标头,例如 Cache-Control、Expires、Pragma、Last-Modified,...在这种情况下浏览器/代理是否会缓存响应?如果是,什么时候?

谢谢你!

http cache-control browser-cache

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