3

问题

我正在使用 Django 1.3。我将不得不在我的模板中使用许多不同的 JavaScript 函数(比如 10 个或其他)。

我首先做的是把它们放在<script>标签中,效果很好。但是现在它可以工作了,我想将它们与模板代码分开。这将使代码更具可读性。

所以我想到了使用这个{% ssi "..." parsed %}东西。由于我在我的 JavaScript 代码中使用 Django 模板标签,我不能只将它们从我的静态文件中链接到<script src="..."></script>.

这是有效的:

# This will allow the {% ssi %} tag to include files from the given paths
ALLOWED_INCLUDE_ROOTS = (
    '/THIS/IS/THE/FULL/PATH/TO/MY/PROJECT/static/js/',
)

这是不起作用的:

# Project root for further paths
PROJECT_PATH = os.path.dirname(__file__)

# This will allow the {% ssi %} tag to include files from the given paths
ALLOWED_INCLUDE_ROOTS = (
    PROJECT_PATH+'/static/js/',
)

我仔细检查了两个字符串是否相同(带有./manage shell)并且它们完全相同(带有尾随/和全部)。


问题

  • 为什么第二个代码[Didn't have permission to include file]在我的模板中呈现我?
  • 另外,我应该如何链接文件以包含在{% ssi %}标签中?由于{% get_static_prefix %}不起作用,我目前正在使用文件的完整路径,这很难看。
4

2 回答 2

0

尽管看起来很奇怪,但我没有对我的做任何改变,settings.py但它现在可以正常工作了。我相信 Mike Cooper 是对的,一些远程代码正在破坏ALLOWED_INCLUDE_ROOTS路径。

于 2013-05-29T09:36:09.083 回答
-2

ALLOWED_INCLUDE_ROOTS由于它的命名约定,它可能是一个常数。常量并不意味着是可变的。

http://en.wikipedia.org/wiki/Constant_(programming)#Naming_conventions

于 2013-05-05T18:58:59.947 回答