在我的 Ubuntu 16.04 机器上,我有一个需要映射到本地文件夹的 URL。
例如我需要https://domainxxx.xxx
指向/home/user/folder
。
domainxxx.xxx/file.js
我的具体需求不是将其作为远程服务器上的真实“file.js”包含,而是将/home/user/folder/file.js
其作为我机器上的文件包含。
我读到过,在 中输入 是无法实现这一点的/etc/hosts
。我该怎么做呢?
答案1
选项 1:使用file://
链接
您可以使用以下方式将浏览器指向计算机上的任何文件夹
file:///path/to/folder
应显示文件列表,类似于文件浏览器。Web 浏览器还可以解析.html 文件, 展示图片,玩一些视频格式,开放文本和xml本地计算机上的文件。只需将浏览器指向 即可file:///path/to/file.ext
。
选项 2:运行 HTTP 服务器
如果你需要解析除 .html 以外的文件(例如php
文件)或需要从另一台计算机访问它们,则需要运行http 服务器比如apache
,nginx
或者 PythonSimpleHTTPServer
在本地机器上。然后,您可以使用URL http://
(如果已配置)https://
。
例子: 使用 Python 启动即时 http 服务器并简单HTTP服务器
Python 2.x:
cd /home/user/folder && python -m SimpleHTTPServer 8082
Python 3.x:
cd /home/user/folder && python3 -m http.server 8082
然后打开您喜欢的浏览器:http://本地主机:8082/
更新:
添加您的具体需要在评论中,我建议阅读这一页为什么不允许在 http 页面内进行本地链接。其中还包括一种解决方法(使用 NoScript 覆盖安全策略)。
出于安全考虑,Mozilla 应用程序会阻止远程文件链接到本地文件(和目录)。这包括链接到硬盘驱动器上的文件、映射网络驱动器上的文件以及通过统一命名约定 (UNC) 路径访问的文件。这可以防止许多不愉快的情况
我看到三种选择:
- 使用(即时)HTTP 服务器,然后您可以
http://localhost:8082/file.js
直接包含。 - 覆盖 Firefox 安全策略并使用链接
file://
(当有其他选择时我不会这样做) - 让服务器通过 http、smb 或 ssh 连接访问文件以直接提供服务(如果您位于路由器或防火墙后面,则需要注意端口转发)。这实现起来相当复杂,但这是允许从其他机器访问的唯一选项(仅当您的计算机在线时)。
注意:为了获得更好的答案,总是写问题尽可能具体从一开始就。
答案2
如果您使用的是 Apache 服务器,您的默认根目录可能为/var/www/html
,Apache 服务器将立即查找名为index
或 的文件index.html
或文件夹index.php
。您需要做的是:
- 转到您想要指向的文件夹(
/home/user/folder
在您的示例中)右键单击该文件夹并单击“创建链接”(或任何 CLI 替代方案)。 - 现在链接文件已创建,将其重命名为“index”,然后将其移动到 Apache 根文件夹
/var/www/html
。 - 最后一步重要是确保 Apache 具有适当的权限来访问所需的文件(即我们创建和命名的链接
index
以及/home/user/folder
目录以及该目录中需要访问的文件)。
答案3
答案4
LAMP(Linux Apache MySQL 和 PHP)是最好的方式,因为它在本地机器上运行服务器。我在我的网站上写了如何安装和设置如何在 Ubuntu 上安装 LAMP