PHP-oluşturulan JavaScript ve CSS Temizlik bağlantılar

4 Cevap php

PHP veya herhangi bir şey ile HTML içeriğini oluştururken Background:, aslında "in-line" içerik kalanı ile CSS ve JavaScript dahil kalmadan JavaScript bağlantıları ve etiketleri içinde CSS saklanması mümkün . Yapmanız gereken tüm dosyaya bir bağlantı oluşturmaktır.

Example: {script type="text/javascript" src="./js/fooscript.js"}{/script}

PHP dinamik JavaScript kodu bir kısmını veya tamamını oluşturmak gerekiyorsa Question: Yukarıdaki yaklaşım, ancak çalışmıyor. Yukarıdaki gibi temiz "tek satır" bağlantı var, ama yine de dinamik olarak oluşturulan JavaScript kullanmak için bir yolu var mı?

Açıkçası, bunu yapmanın bir yolu PHP JavaScript otomatik oluşturmak ve bir dosyaya olduğunu yazmak zorunda olduğunu; Bununla birlikte bu yaklaşım, çeşitli nedenlerle istenmeyen bir durumdur. Ben henüz düşünce değil bu iş için alternatif bir hile olup olmadığını merak ediyorum.

4 Cevap

Lütfen /js/ klasöründeki bir .htaccess dosyayı koymak ve bu gibi PHP için .js uzantısını ekleyin:

AddHandler application/x-httpd-php .js

Diğer bir deyişle, PHP dosyaları gibi tüm .js ayrıştırmak içerik PHP. Yani komut gerçekten sunucu tarafında bu çıkış JavaScript PHP dosyalar olurdu. Stil için aynı şeyi, sadece belli ki, .css uzantısını kullanabilirsiniz.

Note: Ben ayrı bir .htaccess dosyasında bu yaptığını hiç denemedim. Bu işe yaramazsa, sadece küresel Apache yapılandırma koydu.

Benim deneyim, nadiren (ve nadiren gerekir) dinamik olarak bütün bir komut dosyası oluşturmak gerekiyor. Örneğin, javascript dinamik javascript (kullanıcı bilgi ya da ayarları gibi) bazı verileri parça almak gerekebilir, ancak komut dosyası (sınıfları / işlevleri / DOM manipülasyonların) arasında kalan tüm kullanıcılar statik.

Genellikle bu durumda sadece dinamik PHP ve daha sonra çıkışı harici bir komut olarak js (dinamik olarak oluşturulan gerekmez% 95) dahil, dinamik şeyler "inline" koymak isterim. Bunun en belirgin nedeni js / css önbelleğe alma.

Reddit.com javascript kullanıcı verilerini almak için kaynak koduna bakarak bunu nasıl yaptığını düşünün.

var reddit = {
    /* is the user logged in */ logged: 'username',
    /* the subreddit's name (for posts) */ post_site: "",
    /* are we in an iframe */ cnameframe: false,
    /* this page's referer" */ referer: "",
    /* the user's voting hash */ modhash: 'lzbcszj9nl521385b7e075e9750ee4339547befc6a47fa01e6',
    /* current domain */ cur_domain: "reddit.com", ...
}

Onların js geri kalanı harici dosyalar bulunur.

Sadece bazı php dosyaları CSS / JS olarak görülebilir yapmak için mod_rewrite kullanabilirsiniz

örneğin / Css / Ekran-style.css puan css.php için? Friendly_id = ekran tarzı

Sen kullanabilirsiniz. JavaScript php dosyalarını ve CSS aramaları. Bu hoş değil ve kaynak bakarak herkes bir senaryo olduğunu biliyor, ama o sunucuda yapılandırma güçlük kaydeder. Dinamik JavaScript yapıyorsanız Ayrıca, ben ucunda bir zaman damgası eklemek öneririz böylece tarayıcı bunu önbelleğe almaz.

Örnek.

<script src="myjavascript.php?a=20090611-021213"></script>