小毛病¶
随便记录一些遇到的小毛病
目录
通过添加 .nojekyll 文件解决 GitHub Pages 的问题¶
在使用 GitHub Pages 部署 Sphinx 文档时,默认启用了 Jekyll, 这会导致以 _ 开头的目录(如 _static)被忽略,导致资源文件无法加载。
需要在部署目录中添加一个空的 .nojekyll 文件,禁用 Jekyll。
步骤:¶
创建 `.nojekyll` 文件: 在 docs 目录下创建一个名为 .nojekyll 的空文件。
echo. > docs\.nojekyll
实际现在使用的make.bat文件(添加了些许注释) 以下脚本中添加了自动创建 .nojekyll 文件的命令。
@ECHO OFF
REM 切换到脚本所在的目录
pushd %~dp0
REM 命令文件用于 Sphinx 文档构建
REM Command file for Sphinx documentation
REM 如果 SPHINXBUILD 未设置,则使用默认的 sphinx-build
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
REM 设置源目录、构建目录和目标目录
set SOURCEDIR=source
set BUILDDIR=build
REM 新增用于GitHub Pages的页面文件存放的文件夹路径
set TARGETDIR=docs
REM 检查是否安装了 Sphinx
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.https://www.sphinx-doc.org/
exit /b 1
)
REM 如果没有传递参数,显示帮助信息
if "%1" == "" goto help
REM 执行构建命令
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
REM 检查构建是否成功
if errorlevel 1 (
echo Build failed.
exit /b 1
)
REM 以下为新增功能
REM Step 1: 在 build/html 目录中创建 .nojekyll 文件
echo Creating .nojekyll file...
echo. > "%BUILDDIR%\html\.nojekyll"
REM Step 2: 删除根目录下现有的 /docs 目录(如果存在)
if exist "%TARGETDIR%" (
echo Deleting existing docs directory...
rmdir /s /q "%TARGETDIR%"
)
REM Step 3: 拷贝 build/html 目录下的所有内容到根目录的 /docs 目录
echo Copying build/html to docs...
xcopy "%BUILDDIR%\html\*" "%TARGETDIR%\" /E /I /H /Y >NUL
REM Step 4: 删除 build/html 目录以节省空间
echo Deleting build/html directory...
rmdir /s /q "%BUILDDIR%\html"
echo Deployment completed successfully.
REM 以上为新增功能
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd