我在Heroku上托管了一个Node.js项目,当我上传到Heroku时,我试图从推送中忽略public/
文件夹。我在public/
文件中包含了行.gitignore
,这是我不想覆盖的文件夹,但是它不起作用。当我将Heroku推送到服务器上的public/
文件夹中的所有图像时,都会被删除。
这是我的.gitignore
:
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
firebase-debug.log*
# Dependency directories
node_modules/
public/
为什么会这样,我该如何预防?
答案 0 :(得分:1)
当我将其推送到Heroku时,服务器中的所有图像都会被删除
我怀疑这些是用户上传的图像吗?该目录应该为ignored and untracked,但由于其ephemeral filesystem在Heroku上还不够。只要您的测功机重新启动,您所做的任何更改都会丢失。这种情况经常发生(at least once per day)。
Heroku建议使用storing user uploads on a third-party service like Amazon S3。
答案 1 :(得分:0)
您也可以从git存储库中删除该文件夹。您是否使用过像git rm -r --cached your_folder/
如果您不想再跟踪文件夹并将其保留在git存储库中,则需要像以前一样将文件夹添加到.gitignore文件中,然后需要使用
git update-index --assume-unchanged public/*
如果要再次跟踪文件夹,可以使用
git update-index --no-assume-unchanged public/*
在this guide上有更多详细信息。