Url_for এর সাথে ফ্লাস্কের স্ট্যাটিক ফাইলের লিঙ্ক


91

url_forকোনও ফোল্ডারে কোনও ফাইল রেফারেন্স করতে আপনি ফ্লাস্কে কীভাবে ব্যবহার করবেন ? উদাহরণস্বরূপ, আমার staticফোল্ডারে কিছু স্ট্যাটিক ফাইল রয়েছে যার মধ্যে কয়েকটি সাবফোল্ডারে যেমন থাকতে পারে static/bootstrap।

আমি যখন কোনও ফাইল পরিবেশন করার চেষ্টা করি তখন আমি static/bootstrapএকটি ত্রুটি পাই।

 <link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}">

আমি এই ফাইলগুলির সাথে সাবফোল্ডারে নেই এমন ফাইলগুলি উল্লেখ করতে পারি, যা কাজ করে।

 <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}">

স্থির ফাইলগুলির সাথে রেফারেন্স করার সঠিক উপায়টি url_forকী? url_forকোনও স্তরে স্থিতিশীল ফাইলগুলিতে ইউআরএল তৈরি করতে আমি কীভাবে ব্যবহার করব ?

উত্তর:


182

আপনার ডিফল্টরূপে স্থির ফাইলগুলির জন্য staticশেষ পয়েন্ট রয়েছে । এছাড়াও Flaskপ্রয়োগের নিম্নলিখিত যুক্তি রয়েছে:

static_url_path: ওয়েবে স্ট্যাটিক ফাইলগুলির জন্য একটি পৃথক পাথ নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। static_folderফোল্ডারের নামের ডিফল্ট ।

static_folder: স্থিতিশীল ফাইলযুক্ত ফোল্ডার যেখানে পরিবেশন করা উচিত static_url_path। অ্যাপ্লিকেশনটির মূল পথে 'স্ট্যাটিক' ফোল্ডারে ডিফল্ট।

এর অর্থ হল যে filenameযুক্তিটি আপনার ফাইলে একটি আপেক্ষিক পথ নেবে static_folderএবং এটির সাথে মিলিয়ে কোনও আপেক্ষিক পথে রূপান্তরিত করবে static_url_default:

url_for('static', filename='path/to/file')

থেকে ফাইল পাথ রূপান্তর করবে static_folder/path/to/fileURL পথে static_url_default/path/to/file।

সুতরাং আপনি যদি static/bootstrapএই কোডটি ফোল্ডারটি থেকে ফাইলগুলি পেতে চান :

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}">

যা রূপান্তরিত হবে (ডিফল্ট সেটিংস ব্যবহার করে):

<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">

এছাড়াও তাকান url_forডকুমেন্টেশন ।


নোট যে সূচনা Flaskকরার পরে staticশেষ পয়েন্টের জন্য একটি url বিধি যুক্ত করে তাই এগুলিতে এই বৈশিষ্ট্যগুলি পরিবর্তন করেFlask উদাহরণস্বরূপ পরিবর্তন করলে url_for('static', ...)ফলাফল পরিবর্তন হয় না । স্থিতিশীল শেষের অবস্থান
— ব্রাইস গিন্টা

1

আমার ক্ষেত্রে আমার কাছে এনজিএনএক্স কনফিগারেশন ফাইলের বিশেষ নির্দেশ ছিল:

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
            try_files $uri =404;
    }

সমস্ত ক্লায়েন্ট '404' পেয়েছেন কারণ ফ্লাস্কের সম্পর্কে এনজিন্স কিছুই জানে না।

আমি আশা করি এটি কাউকে সাহায্য করবে


প্রাথমিক কনফিগারেশন ফাইলটি হ'ল /etc/nginx/nginx.conf (লিনাক্সে)। এটি উইন্ডোজ একই ধরণের পথ হতে পারে (আমি সত্যিই জানি না)
— অ্যান্ড্রু বৃদ্ধি

এটি সার্ভার সাইড কনফিগারেশন, যদি আপনি কেবল আপনার ডেস্কটপে একটি অ্যাপ বিকাশ করেন তবে আপনার সম্ভবত এটির প্রয়োজন / প্রয়োজন নেই /
— adamczi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.