pyramid_assetgen

Yazılım ekran görüntüsü:
pyramid_assetgen
Yazılım detaylar:
Versiyon: 0.4.3
Qayıt: 14 Apr 15
Geliştirici: James Arthur
Lisans: Ücretsiz
Popülerlik: 3

Rating: 2.0/5 (Total Votes: 1)

pyramid_assetgen bir Piramit projesi ile Assetgen entegre sağlayan bir piramit uzantısıdır.
Paketi dahil, özel istek fabrikası (birinci sınıf olarak AssetGenRequestMixin kullanarak size miras) ayarlayın:
sınıf MyRequest (AssetGenRequestMixin, İstek): geçiş
config.set_request_factory (MyRequest)
config.include ('pyramid_assetgen')
Statik dizinde bir Assetgen bildirim dosyası ilişkilendirmek için add_assetgen_manifest yapılandırma yönergesi kullanın:
config.add_static_view ('statik', 'mypkg: Statik')
# Varsayılan aynı dizinde bir assets.json dosyasına bakmak için
config.add_assetgen_manifest ('mypkg: Statik')
Ve sonra sadece normal Pyramid yerleşik request.static_url (yol, ** kw) kullanın.
Gerekçe
Assetgen bir statik dosya inşa aracıdır. Üretim olarak kullanırken, dosya bir karma ile çıktı dosyalarını kendi karma modunu etkinleştirebilirsiniz. Bu onun ismi değişecektir (belki sitenizin stil güncellenmesi, örneğin) bir dosyayı değiştirdiğinizde anlamına gelir.
Eğer optimal HTTP önbelleğe alma stratejisi (sonsuza kadar statik dosyaları önbelleğe tarayıcı müşterilerine söylüyorum) uygulamak için izin verir gibi bir yandan bu mükemmel bir haber. Diğer taraftan, bu karma dosya çözen doğru url hizmet için şablonlar ve / veya görünümü kodunu güncellemeniz gerekir anlamına gelir. Request.static_url: Zaten statik adresler oluşturmak için dinamik bir işlevi kullanarak konum gibi Piramit kullanıyorsanız bu nispeten kolaydır.
Bu paket, pyramid_assetgen bunların doğru karma dosya adları çözümlemek böylece otomatik olarak statik adresler güncellemek için Piramit makine uzanır. Sen şablonları veya görünümü kodunun herhangi birini değiştirmek ya da herhangi bir yeni API'ler öğrenmek zorunda kalmadan Piramit uygulama ile Assetgen entegre kullanabilirsiniz.
İş Akışı
Eğer bir bildirim dosyası aramak için yapılandırılmış bir piramit uygulamayı çalıştırın, sonra dosya aksi uygulama (yapılandırma anda) bir istisna atar, orada olması gerekiyor. Böylece gibi bir şey kullanarak bildirim dosyasını oluşturmak gerekir:
assetgen vb / assetgen.yaml force
Eğer böyle bir şey ile Piramit uygulaması çalıştırmadan önce:
pserve vb / production.ini
[Paste.reloader] kullanarak geliştirme modunda çalışan varsa, örneğin:
pserve vb / development.ini --reload
Sen reloader, örneğin kullanarak izlemek gerekir dosyaların listesine bildirim dosyasını ekleyebilirsiniz:
paste.reloader ithalat add_file_callback gelen
def watch_manifest_files ():
& Nbsp ['/var/www/static/assets.json'] dönüş
add_file_callback (watch_manifest_files)
Eğer üretim ve geliştirme modunda değil otomatik yeniden size assetgen dosyaları hash gerektiğine Ancak, sen, bu ihtiyacın olası konum.
Yapılandırma
Biz config (ana / WSGI uygulaması fabrika işlevi belki mevcuttur) pyramid.config.Configurator örneği olduğunu tahmin ise, biz yönergesi kullanarak ekleyebilirsiniz:
pyramid_assetgen ithalat add_assetgen_manifest gelen
config.add_directive ('add_assetgen_manifest' add_assetgen_manifest)
Ya da daha basit:
config.include ('pyramid_assetgen')
Buna ek olarak, örneğin kullanarak varsayılan isteği fabrika genişletmek gerekir:
pyramid.request ithalat İsteme
pyramid_assetgen ithalat AssetGenRequestMixin gelen
sınıf MyRequest (AssetGenRequestMixin, İstek):
& Nbsp; geçiş
config.set_request_factory (MyRequest)
(AssetGenRequestMixin argüman. Isteğiniz fabrika sınıf tanımı içinde Request önce Aksi static_url yöntemi geçersiz olmayacak gelmelidir unutmayın).
Kullanım
Eğer config.add_static_view kullanarak statik dizin maruz zaman bu yapılandırma ile, artık onunla bir Assetgen bildirim ilişkilendirebilirsiniz:
config.add_static_view ('statik', 'mypkg: Statik')
config.add_assetgen_manifest ('mypkg: Statik')
Statik / assets.json: Bu mypkg bir bildirim dosyası arayacaktır. Dosya başka bir yerde kullanılması ise:
config.add_assetgen_manifest ('mypkg: statik', tezahür = '/ foo / bar.json')
Daha sonra normal şekilde request.static_path ve request.static_url kullanabilirsiniz. Yani, örneğin, içeren bir manifesto kayıtlı ise:
{'Foo.js': 'foo-fdsf465ds4f567ds4ds5674567f4s7.js'}
Arayan:
request.static_path ('mypkg: Statik / foo.js')
Dönecektir:
'/static/foo-fdsf465ds4f567ds4ds5674567f4s7.js'
Testler
Ben örneğin, kullanarak python2.6 ve Python3.2 altında testleri çalıştırmak:
$ ../bin/nosetests Kapsaması-paket = src / pyramid_assetgen kapsaması-silme --with-kapsama --with-doctest
.......
Stmts Bayan Kapak Eksik Adı
-------------------------------------------------- -----------------
src / pyramid_assetgen / __ 59 0 100% init__
src / pyramid_assetgen / testler / __ init__ 58 0 100%
-------------------------------------------------- -----------------
TOPLAM 117 0 100%
-------------------------------------------------- --------------------
0.552s 7 testleri Ran
Tamam

Gereksinimler :

  • Python
  • piramit

Geliştirici Diğer yazılım James Arthur

Yorumlar pyramid_assetgen

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!