pyramid_assetgen আপনি একটি পিরামিড প্রকল্পের সঙ্গে Assetgen সংহত করতে পারবেন যে একটি পিরামিড এক্সটেনশন.
প্যাকেজ অন্তর্ভুক্ত একটি কাস্টম অনুরোধ কারখানা (প্রথম শ্রেণী হিসাবে AssetGenRequestMixin ব্যবহার করে আপনার কাছ থেকে উত্তরাধিকার) সেট:
বর্গ MyRequest (AssetGenRequestMixin, অনুরোধ): পাস
config.set_request_factory (MyRequest)
config.include ('pyramid_assetgen')
একটি স্ট্যাটিক ডিরেক্টরি সঙ্গে একটি Assetgen তালিকা ফাইল সংযুক্ত করতে add_assetgen_manifest কনফিগারেশন নির্দেশ ব্যবহার করুন:
config.add_static_view ('স্থির', 'mypkg: স্ট্যাটিক')
# ডিফল্ট একই ডিরেক্টরির মধ্যে একটি assets.json ফাইল জন্য সন্ধান করতে
config.add_assetgen_manifest ('mypkg: স্ট্যাটিক')
এবং তারপর স্বাভাবিক হিসাবে শুধুমাত্র পিরামিড এর বিল্ট ইন request.static_url (পথ, ** KW) ব্যবহার করুন.
যুক্তিপূর্ণ
Assetgen একটি স্ট্যাটিক ফাইল বিল্ড হাতিয়ার. উৎপাদন ব্যবহার করে, আপনি ফাইলের নাম একটি হ্যাশ সঙ্গে আউটপুট ফাইল তার হ্যাশ মোড সক্রিয় করা যাবে. এই আপনি তার নাম পরিবর্তন করতে হবে (হয়তো আপনার সাইট এর স্টাইলশীট আপডেট, উদাহরণস্বরূপ) একটি ফাইল পরিবর্তন যখন মানে হল যে.
এটা আপনি একটি অনুকূল HTTP- র ক্যাশে কৌশল (সব সময় প্রবেশ করুন আপনার স্ট্যাটিক ফাইল ক্যাশে করার ব্রাউজার ক্লায়েন্ট বলছে) বাস্তবায়ন করতে পারবেন হিসাবে এক দিকে এই, চমৎকার খবর. অন্যান্য, এটা যদি আপনি কুচি-কুচি করিয়া কাটা বস্তু ফাইলের নাম থেকে সমাধান করা অধিকার URL পরিবেশন আপনার টেমপ্লেট এবং / অথবা ভিউ কোড আপডেট করা প্রয়োজন. Request.static_url: আপনি যদি ইতিমধ্যে আপনার স্ট্যাটিক URL গুলি উৎপন্ন একটি গতিশীল ফাংশন ব্যবহার করছেন হিসাবে আপনি পিরামিড ব্যবহার করছেন যখন এই অপেক্ষাকৃত সহজ.
এই প্যাকেজ, pyramid_assetgen তারা সঠিক কুচি-কুচি করিয়া কাটা বস্তু ফাইল নাম সমাধান, যাতে স্বয়ংক্রিয়ভাবে আপনার স্ট্যাটিক URL গুলি আপডেট করার পিরামিড যন্ত্রপাতি প্রসারিত করে. আপনি আপনার টেমপ্লেট বা দৃশ্য কোড যে কোনো পরিবর্তন বা যে কোনো নতুন API গুলি শিখতে ছাড়াই আপনার পিরামিড আবেদন সঙ্গে Assetgen সংহত করার জন্য এটি ব্যবহার করতে পারেন.
কর্মপ্রবাহ
আপনি একটি তালিকা ফাইল জন্য চেহারা কনফিগার করা একটি পিরামিড অ্যাপ্লিকেশন চালানোর তারপর, ফাইল অন্যথায় আবেদন (কনফিগারেশন সময়) একটি ব্যতিক্রম নিক্ষেপ করা হবে, সেখানে প্রয়োজন. আপনি এইভাবে মত ব্যবহার করে আপনার তালিকা ফাইল নির্মাণ করা উচিত:
assetgen ইত্যাদি / assetgen.yaml --force
আপনার মত কিছু দিয়ে আপনার পিরামিড অ্যাপ্লিকেশন চালানোর আগে:
pserve ইত্যাদি / production.ini
[Paste.reloader] ব্যবহার করে উন্নয়ন মোডে চলমান, যেমন:
pserve ইত্যাদি / development.ini --reload
আপনি একটি reloader, যেমন ব্যবহার পর্যবেক্ষণ করা উচিত ফাইলের তালিকা থেকে আপনার তালিকা ফাইল যোগ করতে পারে:
paste.reloader আমদানি add_file_callback থেকে
Def watch_manifest_files ():
& Nbsp; ['/var/www/static/assets.json'] ফিরে
add_file_callback (watch_manifest_files)
আপনি উত্পাদন ও উন্নয়ন মোডে না স্বয়ংক্রিয় পুনরায় লোড করুন আপনি আপনার assetgen ফাইল হ্যাশ উচিত না উচিত তবে, আপনি এই প্রয়োজন সম্ভাবনা কম.
কনফিগারেশন
আমরা কনফিগ (আপনার প্রধান / WSGI অ্যাপ্লিকেশন কারখানা ফাংশন সম্ভবত পাওয়া যায়) একটি pyramid.config.Configurator উদাহরণস্বরূপ, অনুমান করি, তাহলে আমরা নির্দেশ ব্যবহার করে যোগ করতে পারেন:
pyramid_assetgen আমদানি add_assetgen_manifest থেকে
config.add_directive ('add_assetgen_manifest', add_assetgen_manifest)
বা আরো সহজভাবে:
config.include ('pyramid_assetgen')
উপরন্তু, আপনি, যেমন ব্যবহার ডিফল্ট অনুরোধ কারখানা প্রসারিত করতে হবে:
pyramid.request আমদানি অনুরোধ থেকে
pyramid_assetgen আমদানি AssetGenRequestMixin থেকে
বর্গ MyRequest (AssetGenRequestMixin, অনুরোধ):
& Nbsp; পাস
config.set_request_factory (MyRequest)
(AssetGenRequestMixin যুক্তি. আপনার অনুরোধ কারখানা বর্গ সংজ্ঞা অনুরোধ আগে অন্যথা static_url পদ্ধতি উপেক্ষা করা হবে না আসা আবশ্যক).
ব্যবহারের
আপনি config.add_static_view ব্যবহার করে একটি স্ট্যাটিক ডিরেক্টরি এক্সপোজ যখন কনফিগারেশন সঙ্গে, আপনি এখন এটি সঙ্গে একটি Assetgen স্পষ্ট যুক্ত করতে পারেন:
config.add_static_view ('স্থির', 'mypkg: স্ট্যাটিক')
config.add_assetgen_manifest ('mypkg: স্ট্যাটিক')
স্ট্যাটিক / assets.json: এই mypkg একটি তালিকা ফাইল অনুসন্ধান করা হবে. ফাইল অন্য কোথাও ব্যবহার হয়:
config.add_assetgen_manifest ('mypkg: স্থির', স্পষ্ট = '/ foo বিন্যাস / bar.json')
তারপর আপনি স্বাভাবিক হিসাবে request.static_path এবং request.static_url ব্যবহার করতে পারেন. সুতরাং, উদাহরণস্বরূপ, যদি আপনি ধারণকারী একটি স্পষ্ট নিবন্ধিত হলে:
{'Foo.js': 'foo বিন্যাস-fdsf465ds4f567ds4ds5674567f4s7.js'}
কলিং:
request.static_path ('mypkg: স্ট্যাটিক / foo.js')
ফিরে আসবে:
'/static/foo-fdsf465ds4f567ds4ds5674567f4s7.js'
টেস্ট
আমি যেমন, ব্যবহার Python2.6 এবং Python3.2 অধীনে পরীক্ষা চালানো করেছি:
$ ../bin/nosetests --cover-প্যাকেজ = src / pyramid_assetgen --cover মুছে ফেলুন --with-কভারেজ --with-doctest
.......
Stmts মিস কভার হারিয়ে যাওয়া নাম
-------------------------------------------------- -----------------
src / pyramid_assetgen / __ 59 0 100% init__
src / pyramid_assetgen / পরীক্ষা / __ init__ 58 0 100%
-------------------------------------------------- -----------------
মোট 117 0 থেকে 100%
-------------------------------------------------- --------------------
0.552s 7 পরীক্ষা দৌড়ে
ঠিক আছে?
আবশ্যক
- পাইথন
- পিরামিড
পাওয়া মন্তব্যসমূহ না