Προς το περιεχόμενο

Codeigniter & Cache


killer76

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα και καλό Πάσχα.

Αν μπορείτε να με βοηθήσετε σε 3 πραγματάκια γιατί δεν βγάζω άκρη. Έχω στήσει ένα site σε codeigniter αλλά έχω προβλήματα με cache.

1) Αν αλλάξω κάτι σε css, πρέπει να καθαρίσω την cache του browser για να φανούν οι αλλαγές. Αλλιώς δεν φαίνονται ποτέ ή φαίνονται πολύ αργά. Και εντάξει εγώ, κάνω ένα καθάρισμα. Οι επισκέπτες μου όμως; Θα βλέπουν μόνιμα το παλιό css. Υπάρχει κάποιος τρόπος όταν κάνω μια μεγάλη αλλάγή να καθαρίζω "κάτι" από την μεριά μου, ωστέ αν μπεί κάποιος επισκέπτης ή μέλος να καθαρίσει η cache του;

2) Παρόμοιο με το 1ο ερώτημα. Έχω κάνει διγλωσσία, που η παράμετρος της γλώσσας, ορίζεται από το session του εκάστοτε χρήστη. Δηλαδή το url του site είναι πάντα https://www.site.gr χωρίς παραμέτρους και αν το μέλος δεν έχει επιλέξει γλώσσα ή έχει επιλέξει Ελληνικά, δηλαδή το session['language'] == "" ||  session['language'] == "GR" τότε τρέχει την Ελληνική γλώσσα, αλλιώς αν είναι session['language'] == "ΕΝ" τρέχει την Αγγλική. Δουλεύει μια χαρά.

Απλά παρατήρησα, οτί παρότι αλλάζει η γλώσσα στο site, αν ανόιξω το πηγαίο κώδικα, φαίνεται η γλώσσα πριν την αλλαγή. Μόνο αν καθαρίσω cache επανέρχεται. Παράδειγμα αν είμαι στην Ελληνική version και βλέπω το site μου στα Ελληνικά και ανοίξω τον πηγαίο κώδικά μου, θα δώ πχ <title>Η σελίδα μου</title>. Αν αλλάξω τώρα σε Αγγλική version, θα δω το site κανονικά στα Αγγλικά, αλλά αν ανοίξω τον πηγαίο κώδικα θα δω πάλι  <title>Η σελίδα μου</title>. ΑΝ τώρα καθαρίσω την cache θα δω <title>My Page</title>

3) Στον φάκελο application/cache μου έχει βγάλει κάτι αρχεία frame.dat και κάτι φακέλους mask_0, mask_1 κλπ με αρχεία μέσα mask_29_1.dat κλπ. Τί είναι αυτά. Και παλιότερα είχα codeigniter αλλά ο φάκελος cache ήταν πάντα άδειος.

Επεξ/σία από killer76
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Look κατα το development κρατιέτε η cache του browser θες δεν θες.

Αλλά για κάνε ένα κόπο και δοκίμασε να ρυθμίσεις τον webserver να στέλνει τον ακόλουθο header στο reponse:

Cache-Control: no-cache


Ακόμα δες εάν έχει το codeingiter hooks και στέλνε αυτόν τον παραπάνω header εάν το `ENVIRONMENT` static δεν είναι `production`. (Το πως το ρυθμίζεις το βλέπεις στο index.php)

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
23 ώρες πριν, killer76 είπε

Καλησπέρα και καλό Πάσχα.

Αν μπορείτε να με βοηθήσετε σε 3 πραγματάκια γιατί δεν βγάζω άκρη. Έχω στήσει ένα site σε codeigniter αλλά έχω προβλήματα με cache.

1) Αν αλλάξω κάτι σε css, πρέπει να καθαρίσω την cache του browser για να φανούν οι αλλαγές. Αλλιώς δεν φαίνονται ποτέ ή φαίνονται πολύ αργά. Και εντάξει εγώ, κάνω ένα καθάρισμα. Οι επισκέπτες μου όμως; Θα βλέπουν μόνιμα το παλιό css. Υπάρχει κάποιος τρόπος όταν κάνω μια μεγάλη αλλάγή να καθαρίζω "κάτι" από την μεριά μου, ωστέ αν μπεί κάποιος επισκέπτης ή μέλος να καθαρίσει η cache του;

2) Παρόμοιο με το 1ο ερώτημα. Έχω κάνει διγλωσσία, που η παράμετρος της γλώσσας, ορίζεται από το session του εκάστοτε χρήστη. Δηλαδή το url του site είναι πάντα https://www.site.gr χωρίς παραμέτρους και αν το μέλος δεν έχει επιλέξει γλώσσα ή έχει επιλέξει Ελληνικά, δηλαδή το session['language'] == "" ||  session['language'] == "GR" τότε τρέχει την Ελληνική γλώσσα, αλλιώς αν είναι session['language'] == "ΕΝ" τρέχει την Αγγλική. Δουλεύει μια χαρά.

Για το 1ο πρέπει να κάνεις versioning. Ο πιο εύκολος τρόπος κι ο πιο μπακάλικος είναι εκεί που φορτώνεις το css να προσθέσεις version πχ style.css?v=2 κλπ

Το 2ο είναι πολύ κακή πρακτική να αλλάζεις γλώσσα χωρίς να εμφανίζεις κάποιο πρόθεμα στο url. πχ δεν θα μπορέσεις ποτέ να δηλώσεις τις επιπλέον γλώσσες στην google, θα βλέπει πάντα την default και προφανώς κάνεις ποτέ δεν θα μπορέσει να κάνει copy paste το url με την γλώσσα που θέλει.

 

Επεξ/σία από WebDevGr
  • Like 1
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ευχαριστω πολυ για τις απαντησεις σας παιδια. 
 

Υ.Γ. Πιστευεις οτι καλυτερα ειναι να κανω get πχ lang=gr;

Απλα μου αρεσει πιο πολυ ετσι το url

Επεξ/σία από killer76
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

23 λεπτά πριν, killer76 είπε

Ευχαριστω πολυ για τις απαντησεις σας παιδια. 
 

Υ.Γ. Πιστευεις οτι καλυτερα ειναι να κανω get πχ lang=gr;

Απλα μου αρεσει πιο πολυ ετσι το url

Μπορείς αντί για ?lang=gr να το βάζεις στο url πχ. https://example.com/blahblah να είναι το ελληνικό και το https://example.com/en/blahblah να είναι το αγγλικό. Ενναλακτικά έχεις 2 domain ένα ελληνικό και ένα αγγλικό.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Μου είναι πολύ δύσκολο να το κατανοήσω αυτό τώρα. Θα το ψάξω όμως. Μόνο στο SEO είναι το πρόβλημα? Για το Share δεν με ενδιαφέρει τόσο.

Απλά όλο το site δουλεύει με functions του στυλ

function index($page = home)

όταν λοιπόν φορτώνω το site.gr/contact για παράδειγμα, τότε όπου $page θα βάλει το "contact". Αν είναι στα αγγλικά όμως το url  site.gr/en/contact τότε στο $page θα βάλει το "en". Έχω διαβάσει 100 φορές το documentation για τα segments και πάντα μπερδεύομαι. 

========================================================

Spoiler

 

Άσχετο με το πρόβλημά μου απλά ένα θέμα που είχα για να εξηγήσω γιατί δεν κατάλαβα ποτέ τα segments

Ας πούμε οτί έχω φίλτρα σε μια κατηγορία υπολογιστών και είναι επιλεγμένα τα φίλτρα χωρητικότητα, μνήμη, ταχύτητα επεξεργαστή

οπότε έχω ένα url που είναι κάπως έτσι site.gr/pcs/512gb/64gb/3ghz

και εχω δηλώσει για παράδειγμα:

  • $harddisk = $this->uri->segment(1)
  • $ram = $this->uri->segment(2)
  • $cpuspeed = $this->uri->segment(3)

οκ, δουλεύει σωστά.

Αν όμως κάποιος δεν επιλέξει για παράδειγμα ως φίλτρο το μέγεθος δίσκου. Τότε το url θα γίνει

site.gr/pcs/64gb/3ghz  σωστά?

άρα δεν θα οριστουν οι μεταβλητές κάπως έτσι

  • $harddisk = $this->uri->segment(1) = 64gb πλέον
  • $ram = $this->uri->segment(2)  = 3ghz πλέον
  • $cpuspeed = $this->uri->segment(3) = ???

Ενω αν το κάνω έτσι site.gr/pcs/?harddisk=512gb&ram=64gb&cpuspeed=3ghz  το κατανοώ καλύτερα αλλά δεν μου αρέσει το url

 

 

========================================================

Επεξ/σία από killer76
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

λολ, τι εννοείς δε σου αρέσει το url; Αν θες ντε και καλά να "φαινεται" σαν segments, μπορείς να παίξεις με htaccess και να έχεις κάτι σαν site.gr/pcs/harddisk/512GB/ram/64GB/...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...