Gelişimi için bir sunucu tarafı dil kullanmak, ancak statik HTML dağıtmak için en iyi yolu

6 Cevap php

Biz şablon tabanlı sitelerin bir sürü oluşturmak kimin için bir istemci var. İdeal Kohana gibi bir şey (http://www.kohanaphp.com/) çiftleşmiş işlemek ve siteyi yaparken geniş bir esinti değişiklikleri yapmak için kullanabilirsiniz.

Ne yazık ki bizim müşteri (ve olmayacak) herhangi bir sunucu tarafı kod ev sahibi olamaz (ve sizden önce, bu durumu değiştirmek ve kendimizi bir seçenek değildir dosyalarını barındıran olmaz), bu yüzden onlara dağıtılan herhangi bir dosya HTML, Javascript, CSS, resimler olmalı ve Flash sadece.

(Sunucu tarafı dilleri gerektirir taraması gibi siteye hiçbir dinamik yönü var site yönetilebilir hale getirmek için Kohana gibi bir çerçeve ortamda gelişir, ancak sitenin HTML sadece sürümünü dağıtmak veya ihraç edebilmek için iyi bir yolu var mı ve hiçbir veritabanı kullanımı)?

Ben bu siteyi spidering benzer olacağını tahmin, ama bazı sayfa varlıklar javascript ile dinamik olarak yüklenir, çünkü ben biraz daha güvenilir bir şey istiyorum.

Teşekkürler

6 Cevap

I Template Toolkit (Perl) kullanın ve şablonlardan statik dosyaları oluşturur basit bir komut dosyası var. Bu (yaygın navigasyon vs vs) olan durum için harika.

Bu bir dizin ağacı işlemek ve başka sonuçlarını koyacağım bir ttree komutu ile birlikte geliyor.

Burada kullandığım tt.rc dosyasıdır:

# ignore these files (regular expressions)
ignore = \.svn
ignore = ^#
ignore = ~$
ignore = .DS_Store
ignore = \.tt$

# if these template files change, reprocess everything
depend *=tpl/wrapper,tpl/defaults,style/default.html

# just copy these files, don't process as templates
copy = \.(gif|png|pdf|jpg)$

# verbose output
verbose

# recurse into subdirectories
recurse

# setup some defaults from tpl/defaults
pre_process = tpl/defaults

# process this file instead of the real file (see below how this is used)
process     = tpl/wrapper

# process files from src/, output to html/
# extra templates in lib/ (tpl/wrapper for example).
src  = src
dest = html
lib  = lib

Özel dosyalar bir çift, tpl/defaults olduğunu

[%-  page = {
            title = template.title,
            style = template.style or 'default.html'
    };

    base = INCLUDE tpl/base_uri;

    # don't include any whitespace from here...
    RETURN;
-%]

Ve tpl/wrapper olduğunu

[%- content = PROCESS $template;    
   IF !template.name.search('.html') OR page.style == 'none';
      content;
   ELSE;
      default_style_template = "style/" _ page.style;
      PROCESS $default_style_template;
   END;
%]

Bu gerçek şablon işleyecek; content değişken sonuçlar koymak ve ardından tpl/defaults in page.style ile set style şablonu (işlemek; {[(4 varsayılan )]}).

lib/style/default.html stil dosyası sadece olması gerekir

[% content %]

bir yerde gerçek şablonu dahil etmek; önce ve bundan sonra standart altbilgi ve başlıkları olabilir.

Sen tt2.org de Şablon Toolkit hakkında daha fazla bilgi edinebilirsiniz.

; Başka bir seçenek özyinelemeli modunda (veya benzeri) wget kullanmak için geliştirme sunucuda PHP tarafından oluşturulan "ayna" sayfaları olacaktır ama ben tavsiye etmem.

WaveMaker Studio bir şans verin. Bu kısmen sorununuzu çözecektir.

WaveMaker Studio çiftleşmiş özelliği bir tür var ve topluluk açık kaynak sürümü geliyor.

HTH

Consider alternative solutions, even if you don't think you can use them. It is a mistake to become blind to novel solutions because your client "can not handle server side languages" (paraphrased). Sometimes a requirement is a result of incorrect knowledge. For example, is the client really unable to host any server side languages because they can't host IIS or Apache - or is it because they don't have them and can't install any other application either? (If they can install an application, perhaps a solution could be to just provide a "small" webserver - perhaps XSP).

Ben de size, örneğin, "vites" google, bir göz atın öneririz. Ihtiyaçlarınız için iyi bir uyum olmayabilir ama ben bu konuda oldukça iyi şeyler duydum.

Bu başarısız, klasik sunucu tarafı dilleri görmezden ve istemci tarafında tüm yapıyor, ya da bir ihracatçı olarak sunucu tarafı dilleri kullanarak kapalı muhtemelen en iyisidir. (Hangi özel bir iş olacaktır). Ben özel komut dosyalarını kullanarak bir site "ihraç" muhtemelen en iyi yaklaşım olduğunu düşünüyorum.

Son olarak, bu soru gerçekten tek bir cevabı yok - bir programcı olarak, farklı güçlü ve farklı çözümler tartmak ve en iyi olanı seçmek için bir iştir.

Istemci sunucu izin vermezse Hmm ... PHP veya ASP ben daha güvensiz olduğunu CGI için gidecek sanmıyorum.

Peki, bir dev app sayfalarınızı yapmak bir tarayıcıda bu sayfaları kadar yük ve ardından çıkan html kurtarabilir. Tüm sayfaları için yapmak ve hazırsınız.

Sadece bağlantıları doğru işaret ediyor emin olun.

Ben bu herhangi bir özel çözümün biliyorum ama sen gerçekten bir komut sayfaları oluşturmak için yapım sadece bir meselesi seçtiğiniz dilde kendi basit çiftleşmiş-sistemi oluşturmak için hazırız. Yok Benim gençler bu arka gibi bir site vardı. Her zaman ben siteyi yeniden yeni bir şey yükledi ve yeni sayfalar yükledi. Geri sonra PERL kullanıyordum.

Böyle bir komut dosyası oluşturma karmaşıklığı size sitesi kurmak için kullandığınız ne çok bağlıdır. Ben yaptım olarak çalışmak için inşa edilmiş tamamen özel bir yapı ile çalışıyordu. Bu durumda ben size şablonları avantaj elde de ondan statik HTML üretmek için güçlü olmak gibi basit bir şablon sistemi kendiniz yazmak isteyebilirsiniz düşünün.

Bu bir seçenek olacak eğer ben bilmiyorum, ama ben öneririm CushyCms. Bu CSS sınıfları kullanarak içerik alanları tanımlamak ve çevrimiçi içerik düzenleyebilir online bir CMS. FTP bilgilerini sağlamanız gerekir, bu nedenle bu sizin için bir anlaşma kırıcı olabilir, ama kayda değer olduğunu düşündüm.