Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: .css tiedostoissa jotain vikaa

Sivun loppuun

mika132 [22.11.2010 15:42:17]

#

Eli miksi .css tiedostossa olevat tyylitykseni toimivat pienellä viiveellä? Jos teen nyt muutoksia .css tiedostoon pitää odottaa noin 1h että kuva mikä .css tiedostosta tehdään liikahtaa pisteeseensä. Käytän shellit.org serveriä ja Winscp ohjelmaa sekä sftp yhteyttä portista 21 vai 22 en muista.

Siis index.php:ssä lukee näin:

<link rel="stylesheet" href="link.css" type="text/css" />´
<?php
$paa=1;
echo '<div class="Paa_'.$paa.'" style="width: 100px;"> </div>';
?>

ja link.css tiedostossa:

.Paa_1 {
height: 80px;
background-image: url(kuvat/Hahmo/naama_1.png);
position: absolute;
top: 585px;
left: 500px;
z-index:10;
color: Black;
}

Jokotai [22.11.2010 15:51:36]

#

Tarkoitatko siis, että sivu päivittyy käyttäjille vasta tunnin päästä muutoksesta?

mika132 [22.11.2010 16:08:13]

#

ei vaan Paa_1 div vaihtaa uuteen paikkaansa vasta 1h päästä.

Merri [22.11.2010 16:12:23]

#

Palvelin vaikuttaisi välimuistittavan. Voit pakottaa uudelleenlatauksen Ctrl + Shift + R tai Ctrl + F5 tai Ctrl + R, riippuu selaimesta mikä toimii.

Yksi tapa kiertää ongelmia muutoksissa on nimetä CSS-tiedostonsa esim. päivämäärän mukaisesti. Vaikkapa siis tyylit_2010-11-22.css – tästä on hieman ylimääräistä vaivaa HTML:n/templaatin puolella, mutta ainakaan ei tarvitse miettiä, latautuuko uusin versio kaikille vaiko ei.

Sivujen kehittäminen ja tyylittely olisi useimmiten parasta hoitaa omalla koneella. Jos jokin järjestelmä generoi HTML:n, niin voit vaikka kopsata HTML-sorsan koneelle malliksi.

Jokotai [22.11.2010 16:12:55]

#

Siis käyttäjä lataa sivun. Sivulla tapahtuu tapahtuma, joka muuttaa Paa_1 divin arvoja. 1h kuluttua muutos tulee sivulle.

mika132 [22.11.2010 16:14:45]

#

Ei vaan huomaisn uuden jutun.. Jos kirjoitan Paa_1 divin left: px; kohtaan sata lisää mozillassa ei tapahdu mitään, mutta cromessa tapahtuu. Eli onko tämä vain jokin mozillan oma juttu? :D

Merri [22.11.2010 16:18:06]

#

Minun käsittääkseni Mika muuttaa CSS-tiedostoa itse käsipelillä, mutta selain lataa välimuistista vielä vanhan CSS-tiedoston, joka kertoo vanhan kuvan nimen eikä uutta kuvaa.

Katso aiempi viestini noista näppäinoikoteistä, joilla voi pakottaa täydellisen uudelleenlatauksen.

Jokotai [22.11.2010 16:30:08]

#

Viestissäsi on muuten virhe, jos tarkoitit selaimen välimuistia.

Merri kirjoitti:

Palvelin vaikuttaisi välimuistittavan.

Metabolix [22.11.2010 16:36:59]

#

Merri kirjoitti:

Yksi tapa kiertää ongelmia muutoksissa on nimetä CSS-tiedostonsa esim. päivämäärän mukaisesti. Vaikkapa siis tyylit_2010-11-22.css

Vielä yksinkertaisempaa on lisätä aikaleima kysymysmerkin jälkeen, jolloin kaiken saa toimimaan automaattisesti:

<link rel="stylesheet" href="link.css?<?php echo filemtime("link.css"); ?>" type="text/css" />

reca [22.11.2010 17:10:08]

#

Metabolix: Ovelaa, käytännöllistä ja helppoa. Kiitos vinkistä! :-)

Merri [22.11.2010 18:00:27]

#

Jokotai: palvelimelta tulee selaimelle ohjeita tiedostojen välimuistituksesta ja selain sitten noudattaa niitä. CSS:n välimuistitus on siis pääosin kiinni palvelimen asetuksista, vaikka välimuisti onkin selaimen heiniä. Palvelin on olennaisempi kuin selain :)

Jokotai [22.11.2010 18:17:39]

#

Miksei tuollaisia juttuja koskaan mulle opetettu :(

Mutta kun se on noin, niin minkäs nimisessä tiedostossa nuo välimuistitus käskytykset kulkee?

tsuriga [22.11.2010 18:46:41]

#

Ne kulkee sivun otsikkotiedoissa.

Merri [22.11.2010 20:05:27]

#

Apache-palvelimilla otsikkotietojen säätö onnistuu .htaccess-tiedostoilla. Omat tuotannossa olevat sivustot käyttävät palttiarallaa tämänkaltaista osuutta välimuistitukselle:

# Fonttien tyyppi
AddType application/octet-stream .ttf .eot .woff

# Salli fontit
<FilesMatch "\.(ttf|otf|eot|woff)$">
	<IfModule mod_headers.c>
		Header set Access-Control-Allow-Origin "*"
	</IfModule>
</FilesMatch>

# Vektorien tyyppi
AddType image/svg+xml .svg
AddType image/svg+xml .svgz
AddEncoding gzip .svgz
<FilesMatch \.svgz$>
  <IfModule mod_gzip.c>
    mod_gzip_on No
  </IfModule>
</FilesMatch>

# Pakkaa tiedostot nopeampaa jakelua varten
<ifModule mod_gzip.c>
	mod_gzip_on Yes
	mod_gzip_dechunk Yes
	mod_gzip_item_include file \.(html?|txt|css|js|php|pl|eot|ttf)$
	mod_gzip_item_include handler ^cgi-script$
	mod_gzip_item_include mime ^text/.*
	mod_gzip_item_include mime ^application/x-javascript.*
	mod_gzip_item_exclude mime ^image/.*
	mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# Pakota selain välimuistittamaan tiedostot pitkäksi aikaa
<ifModule mod_expires.c>
	ExpiresActive On
	ExpiresDefault "access plus 1 seconds"
	ExpiresByType text/html "access plus 1 seconds"
	ExpiresByType image/gif "access plus 2592000 seconds"
	ExpiresByType image/jpeg "access plus 2592000 seconds"
	ExpiresByType image/png "access plus 2592000 seconds"
	ExpiresByType text/css "access plus 604800 seconds"
	ExpiresByType text/javascript "access plus 216000 seconds"
	ExpiresByType application/x-javascript "access plus 216000 seconds"
	ExpiresByType application/octet-stream "access plus 2592000 seconds"
</ifModule>

# Pakota selain luottamaan ylläoleviin tietoihin
<ifModule mod_headers.c>
	Header unset ETag
</ifModule>
FileETag None

# Välimuistin tarkemmat määritykset
<ifModule mod_headers.c>
	<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|eot|ttf|svg|woff)$">
		Header set Cache-Control "max-age=2592000, public"
	</filesMatch>
	<filesMatch "\\.(css)$">
		Header set Cache-Control "max-age=604800, public"
	</filesMatch>
	<filesMatch "\\.(js)$">
		Header set Cache-Control "max-age=216000, private"
	</filesMatch>
	<filesMatch "\\.(xml|txt)$">
		Header set Cache-Control "max-age=216000, public, must-revalidate"
	</filesMatch>
	<filesMatch "\\.(html|htm|php)$">
		Header set Cache-Control "max-age=1, private, must-revalidate"
	</filesMatch>
</ifModule>

Tuossa on sekä puutteita että ylimääräisyyksiä riippuen siitä, mitä kaikkea sivustolla on käytössä. En ole juuria myöten aiheeseen perehtynyt, vaan se mitä tässä näkyy on pitkälle muutaman kerran lueskelun/opiskelun jäljiltä kasaan kyhättyä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta