2011-02-02 1 views
0

Je tente de générer du code HTML statique pour un site que j'ai créé dans Django. Ce que j'ai trouvé jusqu'à présent est StaticGenerator. Il me semble qu'il devrait ressembler à l'exemple de la page github, mais j'ai écrit le code ci-dessous et il donne l'erreur ci-dessous.Utilisation de StaticGenerator pour générer du code HTML statique à partir d'un projet Django

code:

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))) 
os.environ["DJANGO_SETTINGS_MODULE"] = "site.settings" 
quick_publish('/') 

Erreur (modifiée par souci de concision):

Traceback (most recent call last): 
    quick_publish('/') 
    File "/usr/local/lib/python2.6/dist-packages/staticgenerator/__init__.py", line 232, in quick_publish 
    return StaticGenerator(*resources).publish() 
    File "/dist-packages/staticgenerator/__init__.py", line 229, in publish 
    return self.do_all(self.publish_from_path) 
    File "/dist-packages/staticgenerator/__init__.py", line 223, in do_all 
    return [func(path) for path in self.resources] 
    File "/dist-packages/staticgenerator/__init__.py", line 187, in publish_from_path 
    filename, directory = self.get_filename_from_path(path) 
    File "/dist-packages/staticgenerator/__init__.py", line 179, in get_filename_from_path 
    filename = self.fs.join(self.web_root, path.lstrip('/')).encode('utf-8') 
    File "/dist-packages/staticgenerator/filesystem.py", line 38, in join 
    return os.path.join(paths[0], *[path.lstrip("/") for path in paths[1:]]) 
    File "/usr/lib/python2.6/posixpath.py", line 67, in join 
    elif path == '' or path.endswith('/'): 
AttributeError: 'tuple' object has no attribute 'endswith' 

Répondre

1

OK, sur passer par votre trace, je vais deviner votre settings.WEB_ROOT est un tuple.

lignes pertinentes:

# web root set 
self.web_root = getattr(self.settings, 'WEB_ROOT') 

# web root used 
filename = self.fs.join(self.web_root, path.lstrip('/')).encode('utf-8') 

# breaks on real os.path.join 
return os.path.join(paths[0], *[path.lstrip("/") for path in paths[1:]]) 
+0

Wow, ce fut une erreur stupide. J'ai fait écrire WEB_ROOT avec une virgule à la fin. C'est toujours la ponctuation qui me fait trébucher. :-) Je vous remercie! J'aimerais pouvoir vous voter, mais le système de réputation me bloque. – GhotiPhud

+0

Génial! Content que tu aies trouvé le problème. PS: Booo. Vous ne pouvez même pas accepter? Je me demande si c'est parce que j'ai supprimé le message à un moment donné. –

+0

Ah, je peux accepter. Je ne peux pas voter. – GhotiPhud

Questions connexes