سؤال

لقد حصلت على تثبيت CakePhP تشغيل ستة مواقع ويب مختلفة ، ولكل منها مع Webroot. جميع الكود الأساسي هو نفسه (وحدات التحكم ، والموديلات ، وما إلى ذلك) ، فقط CSS ، الصور ، JS وما إلى ذلك يتم تقسيمها إلى WebRoots منفصلة (App/Webroot ، App/Webroot_second_site ، App/Webroot_third_site ، إلخ)

سؤالي هو: هل هناك طريقة لتبادل الموارد المشتركة بين ويب ويب؟ لذلك ليس لدينا ست نسخ مختلفة من Tinymce و jQuery التي تشوش مشروعنا ، والأهم من ذلك بالنسبة لي ، حتى نتمكن من إجراء تغيير في ملف CSS شائع بدلاً من الاضطرار إلى نسخ/لصق التغيير عبر ستة مواقع مختلفة " مجلدات؟

إذا كانت هذه المواقع تعمل على مربع Linux ، فأعتقد أنه يمكن إنجازه بسهولة إلى حد ما مع وجود ترابط من كل من Webroots إلى مجلد مشترك أعلى في شجرة الدليل ، لكننا ندير Windows Server 2003 / IIS 6. أي اقتراحات؟

هل كانت مفيدة؟

المحلول

تبين لك يستطيع هل ترابط الدليل في أنظمة ملفات NTFS. أو على الأقل قريب بما يكفي لأغراض عملية. "تقاطعات NTFS" ستعمل على ما تريد. احصل على برنامج "تقاطع" sysinternals لبرنامج سطر أوامر بسيط لإنشاء/حذف هذه الوصلات. ثم يمكنك ربط أي أدلة شائعة تحتاج إلى دليل رئيسي واحد. على سبيل المثال ، إذا كان لديك

Webroot1/ WebRoot2/ WebRoot3/

كل مع دليل "JS/" الخاص بهم ، ثم يمكنك إنشاء

Webroot_common/JS/

ثم symlink ... er ، "إنشاء تقاطعات" لهذا الدليل الجديد مثل ذلك:

junction webroot1/js/common webroot_common/js
junction webroot2/js/common webroot_common/js
junction webroot3/js/common webroot_common/js

(نعم ، يأخذ برنامج "Junction" مدخلاته للخلف من Linux "LN -S") ثم يمكنك وضع أي ملفات JS الشائعة التي تحتاجها ، مثل jQuery ، في هذا المجلد المشترك ، وترك أي ملفات JS الخاصة بالموقع في "WebRootx /JS ".

نصائح أخرى

يمكنك صنع خادم ثابت. أضف إدخال DNS إلى شيء مثل Static.yoursite.com. ارتباط بتلك الملفات من مواقعك الأخرى - ربما يمكنك فقط تعديل HTML Helper بحيث يقوم تلقائيًا بإنشاء روابط إلى المجال الآخر.

يمكن أن يساعد هذا في الأداء ، لأنه يمكنك تشغيل شيء مثل Nginx لخدمة هذه الملفات الثابتة. كما أنه سيتوافق مع عمليات استرجاع الموارد - ستسمح معظم المتصفحات بوصلات 2 إلى خادم معين ، وبالتالي فإن الأشياء الثابتة تتنافس مع موارد الاتصال التي تحتاجها الأشياء الديناميكية. في جوهرها ، سيبدأ المستخدم اتصالتين بأشياء ديناميكية بالإضافة إلى اتصالين بالموارد الثابتة.

يعمل بشكل جيد بشكل جيد.

هذا سيفي بالغرض. ستحتاج إلى إعادة تعريف الدلائل لخادم Windows ، لكنك ستفهمها جيدًا بما فيه الكفاية.

أولاً ، ضع تطبيقات التطبيق والكيك على مستوى أعلى من public_html.

/var/www/app
/var/www/cake

تأكد من أن كعكة المجلد تحتوي على جميع مجلدات الكيك الموجودة فيها (الكعكة ، والبائعين ، وما إلى ذلك).

/var/www/html/site1
/var/www/html/site2

سيجلس محتوى Webroot في كل من أدلة public_html. الآن ، قم بتعديل الخاص بك index.php ملف في كل من Webroots للإشارة إلى نفس التطبيق:

if (!defined('ROOT')) {
    define('ROOT', DS.'var'.DS.'www'.DS.'app');
}

if (!defined('APP_DIR')) {
    define('APP_DIR',dirname('app'));
}

if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', DS.'var'.DS.'www'.DS.'cake');
}

تأكد من تشغيل إعادة الكتابة بالطبع. بعد ذلك ، سيتم تشغيل كل الرمز نفسه ولكن استخدم Webroot حيث يتم تقديم INDEX.PHP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top