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.