小编Gie*_*ers的帖子

schema.org SiteNavigationElement的正确用法是什么?

在SEO方面......

是否最好将该方案放在包含所有链接的父级上?

<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
</nav>
Run Code Online (Sandbox Code Playgroud)

......或者每个链接应该被视为它自己的元素吗?

<nav>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 1</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 2</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 3</span>
        </a>
    </span>
</nav>
Run Code Online (Sandbox Code Playgroud)

seo html5 schema.org

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

使用Grunt构建并使用Capistrano进行部署时,Jenkins的最佳实践是什么?

我目前正在我们的办公室设置一个构建服务器,我想知道这是什么最好的做法.我知道每种情况都要求采用不同的方法,并且有一百万种方法可以实现相同的目标,但由于我是Jenkins的新手和一般的构建服务器的概念,我想知道我是否这样做'对了".

我们公司专注于为各种客户构建网站,如WordPress或Magento等各种平台.我现在有以下设置:

我们将更改推送到Git中的master或staging-branch.Jenkins轮询这些分支,并在检测到更改时执行以下操作:

  • 从Git中拉出存储库(master在此示例中)
  • 签出一个叫做的分支 build-master
  • 将此分支重置为 origin/master
  • 是否找到了npm installa package.json.
  • 是否找到了grunt builda Gruntfile.js.
  • (这里有其他东西的空间,如phpunit或casperJS测试)
  • 提交更改并将其推回origin/build-master.
  • 执行a cap build-master deploy让Capistrano处理远程服务器上的部署.

现在我想知道这是否是使用构建服务器的"正确"方式.我遇到了一些逻辑问题.喜欢:

例如供应商软件.当我有各种带有Bower的JS库(它们位于git-ignored js/vendor-folder中)时,我可以将它们连接起来并将其uglify为一个缩小的JS文件,这样它们就可以将它们提交到build-master-repository(对于Capistrano).但是当我有PHP库(例如使用Composer)时,我不知道如何处理这个问题.它们位于git-ignored php/vendor-folder中,但它们需要包含在-branch中,build-master以便在实时服务器上部署get.目前我这样做是通过向.gitignore.build我的存储库添加一个包含php/vendor-folder的存储库,并.gitignore在提交和推送之前用这一个覆盖现有的存储库origin/build-master.

和/或:

编译文件.当我不想包含一些文件(比如从SASS生成的CSS文件)时,我把它们放在了.gitignore.但同样,当Capistrano要部署它时,我希望编译的,连接的和缩小的CSS文件在我的存储库中,否则它不会放在我的生产服务器上.

任何人都可以告诉我,我是否应该以它应该的方式构建和部署?或者我在这里完全过于复杂了?我真的很感兴趣那些有更多经验的人在他们的构建过程中如何利用Jenkins,Grunt,Bower,Composer,Capistrano等.

git capistrano build-server jenkins

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

Jenkins:从另一个存储库(而不是我要构建的存储库)加载Jenkinsfile

所以我在考虑这种设置,但我什至不确定是否可行。我在一个较大的组织中工作,我们希望对各种项目执行静态代码分析和单元测试。这些项目都是遵循相同模式的模块,因此,为了简单起见,我有30个项目都可以用相同的方式构建Jenkinsfile。唯一的区别Jenkinsfile是结帐阶段的存储库。

现在,我正在考虑是否有可能包含1个存储库Jenkinsfile,并让其他30个存储库使用该存储库(使用“来自SCM的管道脚本”)来获取Jenkinsfile。然后,我将在url-step的git命令中Checkout使用参数(或某些参数)设置-attribute 。

现在我的问题是:

  • 这样的设置是否可能?(具有与Jenkinsfile要构建的存储库不同的存储库)。
  • 轮询如何工作?Jenkins还是会轮询适当的存储库以查找更改(30个不同的存储库之一),还是只轮询一个包含更改的存储库Jenkinsfile(这显然不是我想要的)。

任何答案,想法或建议将不胜感激。

git continuous-integration multiple-repositories jenkins jenkins-pipeline

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

Jenkins:在 docker 容器中克隆一个私有仓库

我知道在 SO 上已经有很多关于这个主题的问题,我尝试了他们提出的几乎所有解决方案,但我目前无法让它工作(我想要的方式)是)。

问题

我有一个在 Jenkins 中启动的 docker 容器,在这个 docker 容器中,我尝试克隆一个私有存储库。为此,我需要将我的公共 Jenkins 密钥添加到我的 Git 存储库中,并且我的 docker 容器需要知道这个 SSH 密钥。

我目前的工作解决方案

我已经能够通过在 my 中执行以下操作来做到这一点Jenkinsfile

docker.image('php_jenkins_test').inside('--env COMPOSER_HOME=$WORKSPACE/.composer -v /etc/passwd:/etc/passwd:ro -v /home/jenkins/.ssh:/home/jenkins/.ssh:ro') {
    sshagent(['jenkins-ssh-publickey']) {
        sh "./test/run-tests.sh"
    }
}
Run Code Online (Sandbox Code Playgroud)

由于以下原因,我将我的etc/passwd/home/jenkins/.ssh作为只读卷挂载:

  • Jenkins Docker 插件以 Jenkins 用户身份运行。这个用户的 UID 和 GID 在我的 Docker 容器中是未知的。因此我不得不安装/etc/passwd.
  • 当从 Git 存储库中提取时,我的known_hosts(和我的密钥?)需要在我的 docker 容器中知道。由于/etc/passwd将 jenkins 用户映射到/home/jenkins,我还必须在我的来宾计算机上安装 Jenkins 的 SSH 目录。
  • sshagent-command树立SSH插座等等,我的钥匙是我的容器内访问(纠正我,如果我错了,我是相当新的詹金斯和码头工人)。

就像我说的:这已经有效了。通过此设置,我可以在 Jenkins 的 docker …

git ssh git-clone jenkins docker

7
推荐指数
0
解决办法
2025
查看次数

Jenkins:在全球环境部分使用withCredentials

我有一个具有多个阶段的Jenkins管道,它们都需要相同的环境变量,我这样运行:

script {
    withCredentials([usernamePassword(credentialsId: 'COMPOSER_REPO_MAGENTO', passwordVariable: 'MAGE_REPO_PASS', usernameVariable: 'MAGE_REPO_USER')]) {
        def composerAuth = """{
            "http-basic": {
                "repo.magento.com": {
                    "username": "${MAGE_REPO_USER}",
                    "password": "${MAGE_REPO_PASS}"
                }
            }
        }""";
        // do some stuff here that uses composerAuth
    }
}
Run Code Online (Sandbox Code Playgroud)

我不想composerAuth每次都重新声明,所以我想将凭证存储在全局变量中,所以我可以这样做:

script {
    // do some stuff here that uses global set composerAuth
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将它放在环境部分:

environment {
    DOCKER_IMAGE_NAME = "magento2_website_sibo"
    withCredentials([usernamePassword(credentialsId: 'COMPOSER_REPO_MAGENTO', passwordVariable: 'MAGE_REPO_PASS', usernameVariable: 'MAGE_REPO_USER')]) {
        COMPOSER_AUTH = """{
            "http-basic": {
                "repo.magento.com": {
                    "username": "${MAGE_REPO_USER}",
                    "password": "${MAGE_REPO_PASS}"
                }
            }
        }""";
    }
} …
Run Code Online (Sandbox Code Playgroud)

groovy credentials jenkins jenkins-pipeline

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

在 Gulp 中是否可以使用字符串而不是源文件开头?

通常,当我使用 Gulp 时,我会从以下内容开始:

gulp.src('some/file.txt).pipe( ... ) // etc
Run Code Online (Sandbox Code Playgroud)

我也可以使用字符串而不是文件吗?例如:

gulp.str('some text').pipe( .... ) // etc
Run Code Online (Sandbox Code Playgroud)

我正在处理的用例是我正在创建一个 SCSS 字符串临时并希望将其通过管道传输到 libsass。但我不想创建一个临时文件,而是使用原始字符串。例子:

var myString = 'html { color: red; }';
gulp.str(myString).pipe(sass()) // etc
Run Code Online (Sandbox Code Playgroud)

这可能吗?

string sass gulp

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

如何在 Three.JS 中设置定向光的大小?

我在我的场景中添加了一个定向光,但它没有显示所有的阴影。阴影被切断,就像聚光灯的 FOV 太小一样。

当我启用 shadowCameraVisible 时,我看到我的灯就像一个显示阴影的大盒子(这是有道理的)。问题是:我怎样才能使这个“盒子”更大?

shadow light three.js

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