cache In NGINX
-
עשיתי ב NGINX שרת (יותר נכון, location) לקבצים הסטטיים.
הבעיה היא שהקבצים נשמרים בקש של הדפדפן ואחרי ששיניתי קבצים, קיבלתי את הקבצים הישנים, ולא עזר לי אפילו ריענון קשיח.
אני לא יודע מה לעשות.
האם להוסיף header שהדפדפן בכלל לא ישמור בקש.מה האפשרויות בעניין הזה?
תודה.
-
מה שאפשר לעשות בפשטות, זה להצמיד ver לקבצים
ואז כשהם משתנים לשנת בהפנייה את הגיסה.
ואז מבחינת השרת זה קובץ חדש רק בפעם שאתה מעלה עידכון
זה בעיקר לCSS וJS
לדוגמא כך:src="/test.js?ver=2"
אני לא חושב שאפשר לעשות זה זה בהטמל סטטי אם זה לא אייפריים או משהו.
זה אגב דבר שקורה אוטומטי בבנדל של ASP לדוגמא (רק שאתה רוצה שזה יהיה סטטי) -
@מנצפך אמר בcache In NGINX:
ואני צריך להוסיף על הקובץ את המילים ver=2 ?
לכאורה כן
תנסה אולי ככה
https://serverfault.com/questions/493411/how-to-delete-single-nginx-cache-file
-
בהמשך לעניין הנ"ל,
מה שאני רואה כעת זה שהדפדפן מעלה קבצים מהזיכרון שלו.
כתוב לי ליד התשובה, from memory cache
הנה השרת ב NGINXserver_name ????.il; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://localhost:XXXX; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; location /templates/{ root /root/?????/assets/; proxy_no_cache 1; } location /js/{ root /root/??????/assets/; proxy_no_cache 1; } location /styles/{ root /root/??????/assets/; proxy_no_cache 1; } }
הבעיה היא בלוקיישן template