2016-12-08 3 views
0

私はWordpressで私のウェブサイトをリニューアルしました。 残念ながら、Chrome、Firefox、IEのいずれのフォントも表示されていません。私はサブディレクトリにWordpressのをインストールしているので、これはおそらくですCORS with php(Wordpress)

Access to Font at 'MY WORDPRESS FONTS URL' from origin ' http://w8qb4xj6s.homepage.t-online.de ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://www.obstgut-auf-der-heide.de ' is therefore not allowed access.

が、その後(私は新しいウェブサイトをしたいルートにあるindex.phpをコピーしてそのルートを、それを「移動」:私は次のエラーを取得しますホームURLを要求するときに表示されます)。

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

または

Header set Access-Control-Allow-Origin: * 
Header set Access-Control-Allow-Headers: Content-Type, Depth, 
    User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File- 
Name, Cache-Control 
Header set Access-Control-Allow-Credentials: true 
Header set Access-Control-Allow-Methods: OPTIONS, GET, POST 

が不足しているフォントを固定するために、私はheader.phpのとWP-ブログ - header.phpのために、次のコードのいずれかを追加しようとしました


または

var invocation = new XMLHttpRequest(); 
var url = 'http://www.obstgut-auf-der-heide.de/'; 

function callOtherDomain(){ 
    if(invocation) { 
    invocation.open('GET', url, true); 
    invocation.withCredentials = true; 
    invocation.onreadystatechange = handler; 
    invocation.send(); 
    } 
} 

また、「*」をホームURLに置き換えました。何も働かなかった。私はこの問題全体に非常に慣れていて、PHPやものについてはあまり知らない。しかし、あなたの誰かが、私がこれを修正しようとする可能性のある何かを知っているのでしょうか?私はスーパーに感謝します!!!!ここ

おかげで、エレナ

答えて

3

問題は、以前のWordPressのインストールと同じドメイン上のフォントを持っていたことのようです。フォントが別のドメイン(おそらく別のサーバー)にあるので、WordPressを扱うフォントではなく、フォントを扱うサーバー上にAccess-Control-Allow-Originヘッダーを設定する必要があります。 nginxの上

それはようなものになるだろう:私が持っていた

AddType application/vnd.ms-fontobject .eot 
AddType application/x-font-ttf  .ttf 
AddType application/x-font-opentype .otf 
AddType application/font-woff   .woff 

<FilesMatch ".(eot|ttf|otf|woff)"> 
    Header set Access-Control-Allow-Origin "*" 
</FilesMatch> 
+0

返信いただきありがとうございます!私のホストのために.htaccessを編集することはできません。不幸なことに、Nginxにはなじみがありません。どうすれば使えますか?コードをどこに置くのですか?どうも! – Elliomelly

+0

Apacheを使用しているので、NGINXは心配しないでください。私の提案は、あなたがApacheの設定を変更することができるかどうか、そしてどこでホスティングのサポートを依頼するかということです。 –

+0

これを行う方法は他にありません。 – Elliomelly

0

:あなたは上記のやったとして、それが正確になりますが、ファイルをフォントにこのヘッダを制限する必要があり、Apacheの.htaccess

location ~ \.(eot|ttf|otf|woff)$ { 
    add_header Access-Control-Allow-Origin *; 
} 

同じ問題がアイコンで現れることがあります:

ホストサービスによっては、.htaccessファイルが必要です(Apa cheサーバ)をルートディレクトリに作成します。 Wordpressのインストールでは、それはコンテンツだというようなものです:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Header set Access-Control-Allow-Origin "*" 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

私はラインHeader set Access-Control-Allow-Origin "*"を追加し、CORSエラーは消えていました。

+0

返信いただきありがとうございます!私のホストはそれを許可していないので、不幸にも、私は.htaccessを編集することができません:((オプションではありません....とてもばかげている。 – Elliomelly