عرض الصور / قطع المشكلة عند استخدام Vagrant لتطوير HAML / SASS

StackOverflow https://stackoverflow.com//questions/9648822

سؤال

أقوم بإجراء تغييرات من Haml / SASS لتطبيق القضبان التي أقوم بتشغيلها محليا باستخدام Vagrant / VirtualBox VM على Mac OSX (Snow Leopard)، وأظل مواجهة مشكلة غريبة حقا كلما قمت بإجراء تغييرات على صورة المشار إليها في أي من ملفات HAML / SASS.

إليك مثال على ما يحدث:

  • أفتح صفحة تطبيق القضبان المحلية في متصفحي وجميع الصور تعرض بشكل صحيح
  • أنا أعيد حجم صورة (باستخدام GIMP) لجعلها أصغر وحفظ التغييرات
  • قمت بتحديث الصفحة لمعرفة التغييرات و الصورة الأصلية لا تزال تظهر، ولكن مع قطع أسفل بما يتناسب مع مقدار أصغر صنع الصورة
  • أقوم بإزالة ملف الصورة من الدليل وينشئ بجد الصفحة لمعرفة ما يحدث.
  • في بعض الأحيان لا تزال الصورة القطع الأصلية هناك، وأحيانا تختفي وأرى فقط أيقونة مسار الصورة المفقود
  • قمت بنقل ملف الصورة مرة أخرى إلى الدليل لمحاولة إجباره على التقاط إعادة التحجيم
  • في بعض الأحيان يعمل هذا لأول مرة، في بعض الأحيان يجب أن أفعل ذلك 3 أو 4 مرات قبل أن أرى الصورة الحجم بشكل صحيح
  • أحيانا أرى أن قطع الصورة القديمة التي تم قطعها حتى بعد تحديث الصفحة ولم تظهر أي صورة!

    يبدو أن المشكلة نفسها تحدث إذا قمت بإجراء تغييرات أخرى على ملف الصورة (E.G. إذا قمت بحفظ صورة جديدة تماما بنفس اسم الملف). بصرف النظر عن مشكلة هذه الصورة، تعمل جميع التعديلات على ملفات Haml / SASS، ويمكنني رؤية تغييراتي على الفور.

    اعتقدت أنه قد يكون نوعا من مشكلة تقديم المستعرض / التخزين المؤقت للمتصفح، ولكن تحدث مشاكل مماثلة في فايرفوكس والكروم. إذا كنت تستخدم Firebug، فقد أرى أحيانا أن الملف الصحيح يتم التقاطه ولكنه لا يظهر في الصفحة نفسها.

    يمكنني فقط أن أعتقد أن هذا له علاقة بمتشربة. الشيء الوحيد الذي مضمون لإصلاحه بالكامل هو تقييد المربع المتشرد، ولكن هذا يستغرق وقتا طويلا.

    أنا أدرك أن هذا قد لا يكون مشكلة بسيطة، لأنه قد يكون له علاقة بتطبيق القضبان لدينا وتكوينها من المتشرد / Virtualbox، لكنني اعتقدت للتو سأقوم بنشر المشكلة هنا في حالة وجود أي شخص آخر مماثل القضايا.

    شكرا!

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

المحلول

What you're probably seeing is an issue that the VirtualBox shared folder filesystem has along with the sendfile syscall. You need to disable the use of sendfile on your webserver if you're serving files from a VirtualBox shared folder. Doing this is easy:

In Apache, add this to your configuration: EnableSendfile off

In Nginx, add this to your configuration: sendfile off;

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