আমি কীভাবে এনজিঙ্ক্স সমর্থন @ ফন্ট-মুখের ফর্ম্যাটগুলি তৈরি করতে এবং অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-উত্সকে অনুমতি দিতে পারি?


21

আমি এই নিয়মগুলি এতে যুক্ত করেছি mime.types:

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

এখন কন্টেন্ট-টাইপ শিরোনাম তাদের প্রত্যেকের জন্য যথাযথভাবে সেট করা হচ্ছে। আমার এখন একমাত্র সমস্যা হ'ল ফায়ারফক্সের অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-উত্সের প্রয়োজন। আমি এই উত্তরটি গুগল করেছি এবং এটি আমার সার্ভারের নির্দেশে যুক্ত করেছি:

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

তবে এখন আমার ফন্টগুলি মোটেই পরিবেশন করা হচ্ছে না।

error.logস্থানীয় ফাইল সিস্টেমে এটি খোলার চেষ্টা করছে এমন প্রতিবেদনের পরিবর্তে ..

2010/10/02 22:20:21 [ত্রুটি] 1641 # 0: * 15 খোলা () "/usr/local/nginx/html/fouts/mgopenmodernabold-webfont.woff" ব্যর্থ হয়েছে (2: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই) , ক্লায়েন্ট: 69.164.216.142, সে rver: static.arounds.org, অনুরোধ: "শিরোনাম / ফন্টস / এমগোপেনমডার্নাবোল্ডস-ওয়েবফন্ট.উফ এইচটিটিপি / 1.1", হোস্ট: "স্ট্যাটিক.আরউন্ডস.org"

সিনট্যাক্সের সাথে কী থাকতে পারে কোনও ধারণা? স্থানীয়ভাবে এটি খোলার চেষ্টা করবেন না বা কী বলার জন্য আমাকে কী স্পষ্টভাবে একটি বিধি যুক্ত করতে হবে?

সম্পাদনা : আমি মনে করি সমস্যাটি হ'ল আমি এখন 2 টি পৃথক অবস্থান পরিবেশন করছি। এবং এর পরিবর্তে আমার প্রধানটির ভিতরে রেজেেক্স চেক করা উচিত তারপর হেডারটি ফিড করুন feed


আপনি আপনার নিয়মে "otf" যুক্ত করতে পারেন
কেভিন ক্যাম্পিয়ন

উত্তর:


18

Woot! বুঝেছি .. এটি আমার সম্পাদনায় সন্দেহজনকরূপে অনেকটা ছিল, আমাকে location {}বিকল্পভাবে তৈরি করার পরিবর্তে মূলত আমার একমাত্র রেজেক্স ফাইলনাম চেক করতে হয়েছিল।

    location / { 
            root /www/site.org/public/;
            index index.html;

            if ($request_filename ~* ^.*?/([^/]*?)$)
            {
                set $filename $1; 
            }

            if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
                add_header Access-Control-Allow-Origin *;
            }
    }

8
না, আপনি সত্যিই না। আপনার কেবল প্রসঙ্গ উত্তরাধিকার সম্পর্কে শিখতে হবে। আপনি যদি নিজের সার্ভার ব্লকে সাইট রুট নির্দেশিকা নির্দিষ্ট করে থাকেন তবে তা সমস্ত অবস্থানের ব্লকগুলিতে উপলভ্য হবে। আমি আপনাকে এটি পড়ার পরামর্শ দিচ্ছি: blog.martinfjordvald.com/2010/07/nginx-primer
মার্টিন Fjordvald

কেউ আমার কাছে আসলে # জিঞ্জেক্স চ্যানেলে উল্লেখ করেছেন তবে আমি উত্তর আপডেট করতে ভুলে গেছি।
মধ্যস্থতাকারী ওমুরিলিভ

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

3
দ্রষ্টব্য: যদি প্রদত্ত সমাধানটি আপনার পক্ষে কাজ করে না, তবে এটি এবং এটি পড়ুন । এটি আলোকিতকারী, এবং এটি কাজ করছে না এমন কারণ আপনি খুঁজে পেতে পারেন।
এর_ম

এটি আমার পক্ষে কাজ করে না কারণ ফন্টের
ইউআরএলে

আমার জন্য কাজ করে ...
মনন শাহ

ইঙ্গিত: আপনি যদি ক্লাউডফ্লেয়ার তাদের শুদ্ধ করুন !!
shakee93

5

সমস্ত সম্পদ

এটি সমস্ত সম্পদকে সূক্ষ্মভাবে কাজ করবে। আপনি rootযদি কোনও নতুন অবস্থান নির্ধারণ করতে চান তবে আপনি যুক্ত করতে পারেন

location ~ \.(js|css|png|jpg|jpeg|gif|ico|html|woff|woff2|ttf|svg|eot|otf)$ {
    add_header "Access-Control-Allow-Origin" "*";
    expires 1M;
    access_log off;
    add_header Cache-Control "public";
}

1
হ্যাঁ এটি সবকিছু ভেঙে দিয়েছে
AlxVallejo

3

আর একটি সমাধান: উদাহরণস্বরূপ আপনার সমস্ত ফন্টগুলি putোকান static/fontsএবং যুক্ত করুন

location /static/fonts  {
    add_header "Access-Control-Allow-Origin" *;
    alias /var/www/mysite/static/fonts;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.