2011-02-02 32 views
0

我试图为我在Django中构建的网站生成静态HTML。到目前为止我想到的是StaticGenerator。它看起来像它应该类似于github页面的例子,但是我写下了下面的代码,它给出了下面的错误。使用StaticGenerator从Django项目生成静态HTML

代码:

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

错误(编辑为简洁起见):

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' 

回答

1

OK,当通过你的踪迹去,我要去猜你settings.WEB_ROOT是一个元组。

相关线路:

# 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

哇,这是一个愚蠢的错误。我最后用逗号写了WEB_ROOT。这总是标点符号,让我起床。 :-) 谢谢!我希望我能投票给你,但声誉系统正在锁定我。 – GhotiPhud 2011-02-02 23:22:34