试图将带有html + scss的站点部署到gitlab,并且不知道该怎么做

问题描述

我尝试过的所有方法都对我不起作用(YouTube上的多个网站和视频)。请给我链接其他有用的视频,或帮助我了解此过程。我发现使用gh-pages将网站部署到GitHub上要容易得多,但是在部署到GitLab时遇到了问题。

已经尝试将我的项目推送到GitLab,然后将其推送到CI / CD> Pipelines,我的项目在此成功构建,然后将Settings> Pages推送到404(等待超过1天)。我已经安装了“ .gitlab-ci.yml”文件(具有基本的HTML设置)。

顺便说一句,我应该推送预建网站还是已经转换?

现在就像这样:

 - src
    - fonts
    - html
    - images
    - js
    - sass
    index.html
 .gitattributes
 .gitignore
 .gitlab-ci.yml
 LICENSE
 README.md

编辑:我找到了解决我特定问题的方法。由于GitLab Pages是静态主机,因此在部署sass文件之前,您需要先编译它们,然后再进行部署。 这是我的gitlab-ci.yml文件

image: alpine:latest

stages:
    - compile
    - deploy
    
compile:
  stage: compile
  image: node:8.15-alpine
  script:
    - yarn global add node-sass
    - node-sass ./src/sass/main.scss ./src/css/styles.css --style compressed
  only:
      - master
  artifacts:
    paths:
      - ./src/css

pages:
  stage: deploy
  script:
  - mv src/ public
  artifacts:
    paths:
    - public

在阶段编译时,请注意我如何指向您的 main.scss 文件路径。另外,还有编译文件 styles.css 的路径(您需要使用css样式的文件名,这在主html的<head>部分中已提到)文件)。还要在工件行处检查路径,以便您可以正确地定向文件。如您所见,对于编译,我使用的是Yarn(无需安装任何工具即可使用)。编译完sass文件后,下一步是部署,该部署按计划对我有效。

希望它也对您有帮助!

解决方法

要在Gitlab上成功托管页面,您需要将源移动到public目录并进行存档。示例.gitlab-ci.yml可能是:

image: alpine:latest

pages:
  stage: deploy
  script:
  - mv src/ public
  artifacts:
    paths:
    - public

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...