2015-02-24 21 views
6

Dla kodu strony trzeciej (jquery) w moim projekcie Django, przyjąłem strukturę katalogów dla moich plików statycznych, która umieszcza wszystkie pliki stron trzecich w oddzielnym podkatalogu lib. Dokładniej, to co moje drzewo katalogów obecnie wygląda następująco:Jaki jest zalecany układ katalogu dla statycznych plików stron trzecich w projektach Django?

myproject/ 
    myproject/ 
    static/ 
     css/ 
     my-own-stylesheet.css 
     lib/ 
      bobs-stylesheet.css 
      joes-stylesheet.css 
     img/ 
     my-own-image.png 
     lib/ 
      bobs-image.png 
      joes-image.png 
     js/ 
     my-own-javascript.js 
     lib/ 
      bobs-javascript.js 
      joes-javascript.js 

Ma to osiągnąć dwie rzeczy: 1. Oddzielenie własne aktywa aktywów od osób trzecich. 2. Rozdzielanie plików css, img i js.

Oczywiście, dopóki wszystkie ścieżki są poprawne, działa to dobrze, ale czy faktycznie istnieje konwencja dotycząca lokalizacji materiałów stron trzecich w projektach Django?

Ja również rozważyć

myproject/ 
    myproject/ 
    static/ 
     css/ 
     img/ 
     js/ 
     lib/ 
     bob/ 
      css/ 
      img/ 
      js/ 
     joe/ 
      css/ 
      img/ 
      js/ 

Zastanawiam się, czy mogę być overthinking, ale jest tam „najlepszych praktyk” do tego?

+0

używam ostatniego podejścia. Utrzymanie poszczególnych zasobów firm trzecich upraszcza aktualizacje (nie należy ich jednak dotykać). – cdvv7788

Odpowiedz

3

Ostatnie podejście jest znacznie lepsze.

  1. Możesz po prostu rozpakować bibliotekę zewnętrzną i wkleić folder. Nie musisz ręcznie kopiować i wklejać każdego pliku do różnych folderów.
  2. Możesz również użyć narzędzia do zarządzania pakietami front-end (które polecam), jak altanka ze strukturą katalogów.
  3. Może nie być konieczne modyfikowanie struktury katalogów stron trzecich w css, js i obrazach. Możesz zostawić to, co ma.

Jeśli Twój projekt jest nieco większy, możesz rozważyć utworzenie innego katalogu dla każdej z aplikacji, które utworzyłeś.

Ta struktura katalogów które generalnie zgodne:

myproject/ 
    myproject/ 
    static/ 
     my_app_1 
     css/ 
     img/ 
     js/ 
     my_app_2 
     css/ 
     img/ 
     js/ 
     lib/ 
     bob/ 
      what_ever_directory_str_it_has 
     joe/ 
      css/ 
      img/ 
      js/