Django 找不到我的非 Python 文件!
我真的是搞不懂,为什么Django找不到我的JavaScript文件!我想在管理页面上插入一个自定义的小部件,代码是这样的:
class MarkItUpWidget(forms.Textarea):
class Media:
js = (
'js/jquery.js',
'js/markitup/jquery.markitup.js',
'js/markitup/sets/markdown/set.js',
'js/markitup.init.js',
)
css = {
'screen': (
'js/markitup/skins/simple/style.css',
'js/markitup/sets/markdown/style.css',
)
}
但是,当我把这段代码放到我的管理页面上时,所有的链接都坏掉了,我无法访问任何JavaScript文件。我的设置文件看起来是这样的:http://pastebin.com/qFVqUXyG
我是不是哪里做错了?我对Django还不是很熟悉。
2 个回答
0
我不知道“django方式”是怎样包含js文件的,但我通常在模板里用简单的包含方法,这样很好,因为你可以动态生成文件的位置和名称。哦,如果你在用django的测试服务器,我不太清楚怎么让它识别这些文件,或者它是否能识别。不过,你只需要在本地机器上运行一个apache服务器,然后把文件放在localhost目录里,就可以通过localhost来包含它们,只需在模板里写上它们的完整路径(比如,http://localhost/myfiledirectory/myfile.js)。另外,我还会用亚马逊的s3来托管文件,这样你就能得到一个网址(虽然你没问这个,但如果你本地没有apache,这也是个快速托管文件的方法)。
基本上,我对Django的理解是,它和PHP框架工作方式不同。Django的文件不需要放在网络路径下(也就是说,它们不需要通过主机路径访问,可以放在机器的任何地方)。这样做有助于提供额外的安全性等等,但这也意味着,如果你想给文件一个下载的链接,它们需要放在网络托管路径下。其他人可能知道怎么让django直接做到这一点,但我这种简单粗暴的方法,把文件放在localhost路径下,如果你只想这样做的话,也是可以的。