我在 Azure 上运行 Ubuntu 虚拟机,在我的登录页面上,我希望允许下载已上传到服务器的文件。为此,我使用 href 标签在 index.html 文件中创建了一个超链接,但除此之外,我还想导航到它,但事实证明我无法完成这两种方法。具体来说,在输入我的私有 IP 地址 xx.xxx.xxx.xx 后跟“/”并尝试不同的文件路径(位于 /home/username/file.ext)后,我在浏览器中获得 404 Not Found。是否有人更了解是否必须通过启用设置来共享文件,因为除非需要,否则我不想使用 Azure Files 和 SharePoint 等替代选项。
答案1
为了能够通过 http/https 下载文件,必须将其存储在服务器管理员指定为可公开访问的文件系统中。
您的个人主目录/home/username/
不可公开访问,并且管理员也绝不应将其设置为可公开访问。
将您的文件放在 Web 服务器的默认 DocumentRoot(子目录)中(通常是/var/www/html
),或者您的网站使用的任何其他位置。
当你有许多用户想要允许他们使用个人网站和下载区域时,你可以启用并使用 Apache 的用户目录按照惯例,将每个/home/<login>/public_html/
子目录(尽管您可以调整public_html
子目录名称)指定为可公开访问的,并且其中的内容将在未来http[s]://www.example.com/~login/
如果文件已存储在系统中的正确位置,但下载仍然失败,请检查 Web 服务器(错误)日志以查找原因。例如,文件系统权限不正确也可能会阻止下载。