Je suis en train de travailler sur une petite application web en Aller qui est destiné à être utilisé comme un outil sur la machine d'un développeur pour aider à déboguer leurs applications/services web. L'interface du programme est une page web qui comprend non seulement l'HTML, mais un peu de JavaScript (pour les fonctions), les images et les CSS (pour le style). Je suis la planification d'open-sourcing cette application, les utilisateurs doivent simplement être en mesure d'exécuter un fichier Makefile et toutes les ressources iront là où ils doivent aller. Cependant, j'aimerais aussi être en mesure de simplement distribuer un exécutable avec aussi peu de fichiers/dépendances que possible. Est-il un bon moyen de regrouper le code HTML/CSS/JS avec l'exécutable, de sorte que les utilisateurs n'ont qu'à télécharger et à s'inquiéter d'un fichier?
Maintenant, dans mon application, servant d'un fichier statique ressemble un peu à ceci:
// called via http.ListenAndServe
func switchboard(w http.ResponseWriter, r *http.Request) {
// snipped dynamic routing...
// look for static resource
uri := r.URL.RequestURI()
if fp, err := os.Open("static" + uri); err == nil {
defer fp.Close()
staticHandler(w, r, fp)
return
}
// snipped blackhole route
}
Il est donc assez simple: si le fichier demandé existe dans mon répertoire statique, invoquer le gestionnaire, qui ouvre le fichier et tente de définir un bon Content-Type
avant de servir. Ma pensée a été qu'il n'y a pas de raison, ce doit être basée sur le réel du système de fichiers: si il y avait compilé des ressources, je ne pouvais tout simplement l'index par l'URI de la demande et de servir en tant que tel.
Si il n'y a pas une bonne façon de le faire, ou je suis aboiements le mauvais arbre en essayant de le faire, faites le moi savoir. J'ai juste pensé que l'utilisateur pourrait apprécier que peu de fichiers que possible à gérer.
Si il y a plus de balises appropriées que d' aller, n'hésitez pas à les ajouter ou laissez-moi savoir.