php - 如何使用 AJAX 和 PHP 在在线服务器中启用 CORS 以获取用于另一个 BigCartel 站点的字体

标签 php css ajax .htaccess custom-font

我目前正在使用 BigCartel 设计一个网站。

我想使用自定义字体。无论我使用哪个服务器(目前是免费的 Hostinger 服务器),我都无法使用 htaccess 启用 CORS。

添加到 .htaccess:

#   Header always add Access-Control-Allow-Origin "*"
Header always add Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE"
Header always add Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]]

CSS:

@font-face {
font-family: FontName;
src: url(http://WEBSITE_URL.com/fontname.woff);
}

最佳答案

大部分免费托管不会提供对所有文件的支持。但是拥有 PHP 支持是一件很棒的事情。所以您可以做的是,使用 PHP 以正确的格式提供文件。

所以对于你的问题,如果你有 font-name.woff,它有 application/x-font-woff 作为 MIME 类型,你可以做的是, 创建一个执行如下操作的代理 PHP 脚本:

<?php
  ob_start();
  header("Content-type: application/x-font-woff");
  echo file_get_contents("file-name.woff");
?>

使其通用并以这种方式提供所有文件:

<?php
  ob_start();
  header("Content-type: application/x-font-woff");
  echo file_get_contents("{$_GET["file"]}.woff");
?>

并将其命名为:font.php?file=file-name。希望这会有所帮助。

此外,将 CORS 合并到 PHP 文件中:

<?php
  header("Access-Control-Allow-Origin: *");
  ob_start();
  header("Content-type: application/x-font-woff");
  echo file_get_contents("{$_GET["file"]}.woff");
?>

关于php - 如何使用 AJAX 和 PHP 在在线服务器中启用 CORS 以获取用于另一个 BigCartel 站点的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34853998/

相关文章:

php - 使用 require_once 后 undefined variable

php - OOP - 使用私有(private)属性和公共(public) getter

php - 使用php将datepicker中的数据插入数据库

php - PHP 类中的 Mysqli

html - CSS - 给予 div 额外的高度?页脚和容器之间的巨大空间

CSS : div question regarding positioning {vertical align and background}

css - 为什么 ExtractTextPlugin 通过插件创建一个空的 css 文件?为什么 sass 加载器在使用 Webpack 导入时提供空对象?

javascript - 用于 ajax 的 JSON 世界市场 api 中的多个键和值

javascript - 忽略之前的ajax请求

javascript - 具有设计 View 的 PHP IDE