问题标签 [gitlab-pages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gitlab - 使用本地 Jekyll 安装测试 Gitlab 页面时集成静态内容
我使用Start Bootstrap Creative主题构建了一个 Gitlab Pages 站点。主题有一些静态文件,它们位于它们自己的目录树中static
。部署站点后,放置的内容static/foo/bar
可在http://example.com/foo/bar
.
由于我不想在构建页面时进行尝试错误提交,因此我在本地安装了 Jekyll。但是,当我这样做时jekyll serve
,缺少静态内容(或者更确切地说,在主题期望的位置http://127.0.0.1:4000/static/foo/bar
而不是可用的位置)。http://127.0.0.1:4000/foo/bar
我看到 Gitlab 的 CI 脚本.gitlab-ci.yml
具有以下命令:
换句话说,static
树在 Jekyll 构建之后被手动复制到它的位置。
在本地为站点提供服务时,如何实现相同的目标jekyll serve
?
gitlab - 为什么 Jekyll Build Gitlab Pages 站点在没有 .html url 结尾的情况下无法加载
我正在尝试将我使用 jekyll 构建的网站部署到 gitlab 页面。但是,只有索引页面才能正确加载。所有其他链接都需要将 .html 附加到 url。所以
功能正常,但两者
仅当 url 更改为
奇怪的是,当部署在 github 页面上时,不需要修改 url
一切正常。
我感觉它与 .gitlab-ci.yml 文件有关,但我不确定。这里是如果它有任何线索
gitlab - Gitlab 的“页面”工作在内部是如何工作的?
我有一个像这样的 Gitlab 项目(.gitlab-ci.yml):
在我的项目页面上,我想将签入测试期间生成的 .svg 文件呈现为badges。
Gitlab 徽章工具需要图像文件的 URL。它无法从带有查询字符串的 URL 加载图像。不幸的是,访问特定作业工件的语法以查询字符串结尾。这实际上意味着我们不能将工作工件作为徽章链接。
最流行的解决方法是滥用 Gitlab 的页面功能将工件存储为静态内容。从那里我们可以获得不包含查询字符串的工件的干净 URL。
我的困惑涉及 .gitlab-ci.yml 中定义的“页面”作业背后的底层机制。这里的官方文档非常稀少。有一百万个使用各种框架部署实际网页的示例,但我对其中任何一个都不感兴趣,因为我只是使用我的项目的“页面”进行文件托管。
假设似乎是我想在管道末端部署我的页面。但是,我想在管道开始附近上传 shellcheck 和 pylint 工件。此外,即使管道阶段失败,我也希望上传这些工件。
从语法上讲,页面作业看起来与任何其他作业相同。没有什么可以描述它是如何被 Gitlab 的内部神奇地拾取的。这给我留下了以下问题:
- 我可以将阶段从“部署”更改为“签入测试”,还是部署阶段是 Gitlab 在解析页面作业时寻找的隐藏魔法的一部分?
- 如果我被绑定到部署阶段,我是否可以重新安排阶段以使其在管道中更早出现而不会破坏魔力?
- 页面作业是从本地机器部署工件(作业的默认行为),还是列出的路径来自先前作业已经上传到 Gitlab 管道的工件?
- 如果页面作业仅在本地查找工件,我如何确保它与早期作业在同一台机器上运行,以便找到它们产生的工件?让我们假设 Gitlab 执行器都来自具有相同标签的池,并且没有单独标记。
- 是否有机会让页面作业在最初生成工件的同一个 Docker 容器中运行?
reactjs - React-Router:Gitlab-pages 在刷新时显示 404 错误
我是反应和 gitlab 页面托管的新手,我目前在 gitlab-pages 上托管我的第一个应用程序。几天前,我添加了 react-router-dom 来在特定页面/路由之间导航。路由工作正常,但是当我尝试刷新 gitlab 上的任何页面期望“/”主域时,我收到 404 错误(例如,我在 /booked 路由上并按 F5,我的 gitlab 给了我 404 错误)。我的配置有什么问题吗?请看下面:
这是我的 gitlab-ci.yml:
如果 404 错误没有真正的解决方案,是否可以将任何刷新尝试重定向到“/”主路由?
reactjs - React-router 和 Gitlab 页面:丢失 location.state
我在 gitlab 页面上托管了一个 react-app,我使用 react-router 在使用 historyRouter 的页面之间进行路由。路由工作正常,但是当我重新加载(按 f5 键)或通过将 url 粘贴到我的地址栏中直接打开路由时,该站点会丢失其整个状态。这意味着,例如,我在 myaccount.gitlab/mysite 并且我点击了使用此方法将我重定向到 myaccount.gitlab/mysite/nextpage 的任何链接,
我还将状态 mystate 推送到此页面。到目前为止一切正常,但如果我尝试重新加载页面,我会得到一个空页面。在控制台中调试告诉我 this.location.state 是未定义的。我通过告诉 nextpage 的构造函数将 this.location.state 设置为任何默认值(如果它未定义或为空)成功地解决了这个问题。现在我可以成功重新加载页面,但任何状态都消失了。
有什么可以解决这种行为吗?这只是一个gitlab问题吗?我可以在本地以开发和生产模式在本地运行我的应用程序,并且丢失任何状态或其他东西都没有问题。遵循我使用的一些附加代码:
Gitlab-cli.yml:
index.js:
python - 在 gitlab-ci 中运行 python 脚本时使用正确目录的问题
我有一个 python 脚本,我试图将它作为 jekyll 站点的 gitlab 页面部署的一部分运行。我的网站有带有各种标签的博客文章,python 脚本会为标签页面生成 .md 文件。当我在 IDE 中手动运行该脚本时,它工作得非常好,但是我希望它成为 gitlab ci 部署过程的一部分
这是我的 gitlab-ci.yml 设置的样子:
但是,它实际上并没有创建它应该创建的文件,这是作业“运行”的输出:
该脚本在执行后会读出“生成的标签,计数___”,因此它正在运行,但是它应该创建的文件没有被创建/上传到正确的目录中。在根项目文件夹中有一个 /tag 目录,这是他们应该去的地方。
我意识到这个问题一定与公用文件夹有关,但是当我没有
它仍然没有在 /tag 目录中创建文件,所以无论我有没有 -public 都不起作用,我不知道问题是什么。
redirect - 将 www 重定向到裸域的问题(Gitlab 页面,Hugo 静态网站,namecheap,让我们加密)
我目前将我的 Hugo 静态网站托管在 gitlab 页面上,让我们为 SSL 证书加密。在 gitlab 页面和 DNS (namecheap) 中都启用了裸域和 www 域。我想将 www 重定向到裸域。我被告知要使用 cloudflare,但我需要使用他们自己的 SSL 证书(与 Let's encrypt 相比显然低于标准(请参阅https://nickjanetakis.com/blog/lets-encrypt-vs-cloudflare-for-https) ) 我也无法访问 hugo 静态网站中的 htaccess 文件。如果有人可以帮助我,我将不胜感激。提前非常感谢。
我尝试使用 namecheap 进行重定向,但我所有的尝试都失败了。
在 DNS (Namecheap) 中键入:URL 重定向记录主机:www 值:http ://example.com 我也尝试使用 https 作为值。
我希望输入 www.example.com 并被重定向到 example.com,但它没有发生。
hyperlink - 在 GitLab 页面上发布 Docusaurus 网站时如何解决内部链接问题
在我的 Docusaurus 项目中,我的内部链接在我的本地环境中工作,但是当我推送到 GitLab 时,它们不再工作。它没有将原始文档标题替换为新标题,而是将其添加到最后的 url(' https://username.io/test-site/docs/overview/add-a-category.html ')。我查看了我的配置文件,但我不明白为什么会这样。
我尝试更新页面前面的 id,并确保它与 sidebars.json 文件中的 id 匹配。我还添加了 customDocsPath 并在配置文件中将其设置为“docs/”,尽管这应该是默认设置。
我将括号中的添加类别链接更新为 md 扩展名,但这破坏了我本地的链接,它仍然无法在 GitLab 上运行。我希望当用户单击链接时,它将用新的文档标题(' https://username.gitlab.io/docs/add-a-category.html ')替换 url 中的文档标题它只是将它附加到最后(' https://username.gitlab.io/docs/process-designer-overview/add-a-category.html '),因此链接已断开,因为那不是文档所在的位置位于。
gitlab - Gitlab 页面 - 增量部署
在 gitlab 页面中,似乎在每次部署时都会清理公共目录内容。在某些情况下,我会保留现有文件并添加其他文件。你知道是否可以使用 gitlab ci 增量部署页面?
angular - 尝试访问特定路径时的 GitLab 页面 404
我设置了一个使用自定义域的 GitLab 页面,它提供了一个 Angular 应用程序。如果我去mywebsite.com
它工作,我可以在应用程序中导航没有问题。
如果我尝试通过mywebsite.com/about
(有效路径)访问该页面,例如,它是 404 的。路由在 Angular 应用程序中得到正确处理,并且应该可以正常工作,因为我在其他项目中使用了相同的路由代码,没有任何问题。
知道如何解决这个问题吗?