在本地文件

时间:2016-10-27 12:30:14

标签: html fonts cors

我在浏览器中使用文件协议执行HTML文件,如下所示:

view-source:file:///var/www/html/project/storage/temp/screengrab/designer-1477570109.html

它可以完美地加载css文件,但不能加载CSS所需的资源,如字体ttf或woff文件,SVG渐变等。

我在控制台中看到了Cross Origin问题,但是我在主服务PHP文件中设置了交叉原始标题,如下所示:

header('Access-Control-Allow-Origin: *');

我正在运行PHP内置的http://localhost:8000

运行的Web服务器

1 个答案:

答案 0 :(得分:0)

您无法对从file:///加载的资源执行XHR请求,因为来自file:/// 的网页根本没有来源,它们作为单独的网页运行,除了网络功能之外没有网络功能作为HTML元素(如<link href="..."> or`)的一部分运行的基本网络操作。出于非常明显的安全原因:如果允许磁盘上的文件解析超出HTML规范定义为标准DOM操作的任意XHR请求,那么他们可以使用简单的相对URL访问它们所在目录中的其他文件。 / p>

如果您想从file:///进行测试,唯一正确的方法是停止使用file:///,而是通过为您的文件运行完整的网络服务器,通过localhost URL运行访问您的文件只要您需要测试单个文件,就可以使用或执行大多数人所做的操作并运行单线程CLI服务器。 Python和PHP具有内置的CLI选项,如果您是使用Node的JS开发人员,则可以安装live-serverhttp-server或其他内容等。

如果您正在尝试使用HTML / CSS / JS /等,那么您与file:///没有任何关系,它纯粹是为了单独显式加载磁盘上的页面。< / p>