আমি খুব খুব একই সমস্যা জুড়ে এসেছি।
সংক্ষেপে:
- একটি "অভ্যন্তরীণ" দির (সংস্থানসমূহ / সম্পদ / CSS / a.css) মূল আসল সিএসএস পেতে ইচ্ছুক
- "সর্বজনীন" দিরে ছবিগুলি রাখতে ইচ্ছুক (সংস্থানসমূহ / পাবলিক / চিত্র / শয়তান.পিএনজি)
- এই টুইগটি এই সিএসএসের জন্য প্রস্তুত, এটি ওয়েব / সিএসএস / এ সিএসএস-এ পুনরায় সংশ্লেষ করে এবং চিত্রটিকে /web/bundles/mynicebundle/images/devil.png এ নির্দেশ করুন
আমি নিম্নলিখিতগুলির সমস্ত সম্ভব (বুদ্ধিমান) সংমিশ্রণ দিয়ে একটি পরীক্ষা করেছি:
- @ নোটেশন, আপেক্ষিক স্বরলিপি
- Cssrewrite সঙ্গে পার্স, এটি ছাড়া
- সিএসএস চিত্রের ব্যাকগ্রাউন্ড বনাম সরাসরি <img> ট্যাগ এসসিআর = সিএসএসের চেয়ে খুব একই চিত্রে
- সিএসএস অ্যাসেটিকের সাথে পার্স করা হয়েছে এবং অ্যাসেটিক ডিরেক্ট আউটপুটকেও পার্সিং ছাড়াই
- এবং এগুলি
Resources/public/css
CSS এবং একটি "ব্যক্তিগত" ডিরেক্টরি (যেমন Resources/assets/css
) দিয়ে একটি "পাবলিক দির" (যেমন ) চেষ্টা করে বহুগুণ হয়েছে ।
এটি আমাকে একই পাতায় মোট 14 টি সংমিশ্রণ দিয়েছে এবং এই রুটটি চালু হয়েছিল
- "/App_dev.php/"
- "/App.php/"
- এবং "/"
এইভাবে 14 x 3 = 42 পরীক্ষা দেওয়া।
অধিকন্তু, এগুলি সমস্ত একটি উপ-ডিরেক্টরিতে কাজ করে পরীক্ষা করা হয়েছে, তাই নিখুঁত ইউআরএল দিয়ে বোকা বানানোর কোনও উপায় নেই কারণ এগুলি কেবল কার্যকর হবে না।
পরীক্ষাগুলি দুটি নামবিহীন চিত্র ছিল এবং তারপরে সিএসএসের জন্য 'a' থেকে 'f' নামক পাবলিক ফোল্ডারটি ডিভ করে এবং অভ্যন্তরীণ পথ থেকে নির্মিত যন্ত্রে 'g থেকে' l 'নামকরণ করা হয়েছিল।
আমি নিম্নলিখিত পর্যবেক্ষণ:
১৪ টি পরীক্ষার মধ্যে কেবল তিনটিই তিনটি ইউআরএলে পর্যাপ্ত পরিমাণে প্রদর্শিত হয়েছিল। এবং কোনটি "অভ্যন্তরীণ" ফোল্ডার (সংস্থানসমূহ / সম্পদ) থেকে এসেছিল। স্পেয়ার সিএসএস পাবলিক রাখা এবং তারপরে সেখানে অ্যাসেটেটিক দিয়ে তৈরি করা পূর্ব শর্ত ছিল।
এগুলি ফলাফল:
ফলাফলটি /app_dev.php/ দিয়ে চালু করা হয়েছে
/App.php/ দিয়ে ফলাফল চালু করা হয়েছে
/ এর সাথে ফলাফল চালু করা হয়েছে
সুতরাং ... কেবলমাত্র - দ্বিতীয় চিত্র - ডি বি - ডিভ সি হ'ল অনুমোদিত বাক্য গঠন।
এখানে TWIG কোড রয়েছে:
<html>
<head>
{% stylesheets 'bundles/commondirty/css_original/container.css' filter="cssrewrite" %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{# First Row: ABCDEF #}
<link href="{{ '../bundles/commondirty/css_original/a.css' }}" rel="stylesheet" type="text/css" />
<link href="{{ asset( 'bundles/commondirty/css_original/b.css' ) }}" rel="stylesheet" type="text/css" />
{% stylesheets 'bundles/commondirty/css_original/c.css' filter="cssrewrite" %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets 'bundles/commondirty/css_original/d.css' %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets '@CommonDirtyBundle/Resources/public/css_original/e.css' filter="cssrewrite" %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets '@CommonDirtyBundle/Resources/public/css_original/f.css' %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{# First Row: GHIJKL #}
<link href="{{ '../../src/Common/DirtyBundle/Resources/assets/css/g.css' }}" rel="stylesheet" type="text/css" />
<link href="{{ asset( '../src/Common/DirtyBundle/Resources/assets/css/h.css' ) }}" rel="stylesheet" type="text/css" />
{% stylesheets '../src/Common/DirtyBundle/Resources/assets/css/i.css' filter="cssrewrite" %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets '../src/Common/DirtyBundle/Resources/assets/css/j.css' %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets '@CommonDirtyBundle/Resources/assets/css/k.css' filter="cssrewrite" %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
{% stylesheets '@CommonDirtyBundle/Resources/assets/css/l.css' %}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
</head>
<body>
<div class="container">
<p>
<img alt="Devil" src="../bundles/commondirty/images/devil.png">
<img alt="Devil" src="{{ asset('bundles/commondirty/images/devil.png') }}">
</p>
<p>
<div class="a">
A
</div>
<div class="b">
B
</div>
<div class="c">
C
</div>
<div class="d">
D
</div>
<div class="e">
E
</div>
<div class="f">
F
</div>
</p>
<p>
<div class="g">
G
</div>
<div class="h">
H
</div>
<div class="i">
I
</div>
<div class="j">
J
</div>
<div class="k">
K
</div>
<div class="l">
L
</div>
</p>
</div>
</body>
</html>
ধারক। CSS:
div.container
{
border: 1px solid red;
padding: 0px;
}
div.container img, div.container div
{
border: 1px solid green;
padding: 5px;
margin: 5px;
width: 64px;
height: 64px;
display: inline-block;
vertical-align: top;
}
এবং a.css, b.css, c.css, ইত্যাদি: সমস্ত অভিন্ন, কেবল রঙ এবং সিএসএস নির্বাচক পরিবর্তন করে।
.a
{
background: red url('../images/devil.png');
}
"ডিরেক্টরিগুলি" কাঠামোটি হ'ল:
ডিরেক্টরি
এই সমস্ত কিছু এসেছিল, কারণ আমি পৃথক মূল ফাইলগুলি জনসাধারণের সামনে প্রকাশ করতে চাইনি, বিশেষত যদি আমি "কম" ফিল্টার বা "স্যাস" বা অনুরূপ নিয়ে খেলতে চাইতাম ... আমি আমার "মূল" প্রকাশিত চাই না, কেবলমাত্র সংকলিত একটি।
তবে সুসংবাদ রয়েছে । আপনি যদি পাবলিক ডিরেক্টরিতে "অতিরিক্ত সিএসএস" রাখতে না চান ... এগুলি ইনস্টল করুন না --symlink
, তবে সত্যই একটি অনুলিপি তৈরি করুন। একবার "অ্যাসেটেটিক" যৌগিক সিএসএস তৈরি করে, এবং আপনি ফাইল সিস্টেম থেকে মূল সিএসএস মুছে ফেলতে এবং চিত্রগুলি ছেড়ে দিতে পারেন:
সংকলন প্রক্রিয়া
নোট আমি --env=prod
পরিবেশের জন্য এটি না ।
মাত্র কয়েকটি চূড়ান্ত চিন্তাভাবনা:
এই পছন্দসই আচরণটি গিট বা মার্চুরিয়ালে "পাবলিক" ডিরেক্টরিতে এবং "সম্পদ" ডিরেক্টরিতে "সিএসএস" ছবি থাকাতে অর্জন করা যেতে পারে । এটি হ'ল ডিরেক্টরিগুলিতে প্রদর্শিত হিসাবে "সর্বজনীন" না হয়ে, আপনার ইনস্টলার / স্থাপনক (সম্ভবত কোনও বাশ স্ক্রিপ্ট) না করে "জনসাধারণের" পরিবর্তে "সম্পদে" বাস করে একটি, বি, সি ... কল্পনা করুন ) assets:install
মৃত্যুদন্ড কার্যকর করার আগে সিএসএসকে সাময়িকভাবে "পাবলিক" দির ভিতরে রেখে assets:install
, তারপরে assetic:dump
এবং তারপরে assetic:dump
মৃত্যুদন্ড কার্যকর হওয়ার পরে পাবলিক ডিরেক্টরি থেকে সিএসএস অপসারণকে স্বয়ংক্রিয় করে তোলা হয়। এটি প্রশ্নের মধ্যে পছন্দসই আচরণটি হুবহু অর্জন করবে।
আরেকটি (সম্ভব হলে অজানা) সমাধানটি যদি "সম্পদ: ইনস্টল" কেবলমাত্র উত্স হিসাবে "জনসাধারণ" নিতে পারে বা "সম্পদ" প্রকাশের জন্য উত্স হিসাবে নিতে পারে তা অন্বেষণ করতে হবে। এটি --symlink
যখন বিকাশ করার সময় বিকল্পের সাথে ইনস্টল করা হবে তখন সহায়তা করবে ।
তদতিরিক্ত, যদি আমরা "সর্বজনীন" দির থেকে অপসারণের স্ক্রিপ্ট করতে যাচ্ছি, তবে, তাদের পৃথক ডিরেক্টরিতে ("সম্পদ") সংরক্ষণের প্রয়োজনীয়তা অদৃশ্য হয়ে যায়। তারা আমাদের সংস্করণ-নিয়ন্ত্রণ সিস্টেমে "পাবলিক" এর ভিতরে থাকতে পারে কারণ জনসাধারণের কাছে মোতায়েন করার পরে সেখানে নামানো হবে। এটি --symlink
ব্যবহারের জন্যও অনুমতি দেয় ।
যাইহোক, এখনই সতর্কতা: এখন যেমন মূলগুলি আর নেই ( rm -Rf
), তিনটি নয়, কেবল দুটি সমাধান রয়েছে। ওয়ার্কিং ডিভ "বি" আর কাজ করে না কারণ এটি একটি সম্পদ () কল ছিল যে আসল সম্পদ ছিল ধরে নিয়েছিল। কেবলমাত্র "সি" (সংকলিত) কাজ করবে।
সুতরাং ... কেবলমাত্র একটি চূড়ান্ত বিজয়ী রয়েছে: ডিভ "সি" বিষয়টিতে যা জিজ্ঞাসা করা হয়েছিল তা হুবহু অনুমতি দেয়: সংকলন করার জন্য, চিত্রগুলির পথটিকে সম্মান করুন এবং মূল উত্সটি জনসাধারণের কাছে প্রকাশ করবেন না।
বিজয়ী সি