2013-08-26 25 views
0

在我的项目的根,我有这样的结构:如何指定项目调用JS功能从HTML

/simpleTest 
    /src 
    /demo.js 

    /test 
    /subfolder 
     /index.html 

我需要的是包括我demo.js文件到我的指数。 html,能够从我的html调用js函数。

以下是我在我的html:

<head> 
    <title>Test case</title> 
    <script type="text/javascript" src="/simpleTest/src/demo.js"></script> 
</head> 
<body> 
<button type="button" onclick="callTest()">Click</button> 
</body> 
</html> 
</html> 

这里是我的简单的JavaScript文件:

function callTest(){ 
    alert("!"); 
} 

,如果我离开它像这样 - 没有任何反应,当我按下“点击“按钮。我也试图改变“../simpleTest/src/demo.js”“./simpleTest/src/demo.js”“SimpleTest的/ src目录/ demo.js” SRC路径, “../src/demo.js”,“./src/demo.js”,“src/demo.js”,但它只适用于绝对路径:“C:\ Users \ Me \ Desktop \ simpleTest \ src \ demo.js“这不适用于任何实际项目。

另外,如果我改变SRC路径 “demo.js”

/simpleTest 
    /demo.js 
    /index.html 

它的工作原理,以及更改为“../src/demo.js” 路径的结构和结构到

/simpleTest 
    /src 
    /demo.js 

    /test 
    /index.html 

帮助。但这两个愿望都不适合我(我有一定的目的,有一个结构,我在文章开头提到)。

那么,请告诉我如何指定我想要的结构的项目的根,以适应第一个结构的src路径?

回答

3

如果你真的需要这样的文件夹结构,以此为路径:

../../src/demo.js 

随着每..基本上你去上一级的结构内。你应该这样做,直到你到达一个文件夹,从中你可以访问通往你的文件的子文件夹。

你真的需要这样一个深度嵌套的文件夹结构吗?一般来说,我建议使用相当平坦的文件夹结构。有理由使用更多的嵌套,但在这里我看不到它们中的任何一个。

+0

所以,你的意思是没有办法指定一个根文件夹,没有提到树中的每个父节点?因此,如果我的结构有多于3个文件夹,我不想像这样输入全部....../../../../...更糟的是 - 如果一个结构会发生变化 - 用这个一个决定,我将不得不修复所有的路径,我不喜欢它。 –

+0

PS:我真的不能改变我的文件夹结构:它不是一个纯粹的web项目,它只是一些其他“系统”的一部分,这就是为什么我有这么深的嵌套(作为“系统” )。而我正在做的只是试图为我所有的JS文件使用单元测试框架,为什么我有HTML文件(所以它就像我的项目中的临时对象)。 –

+1

@AgafonovaVictoria一种不同的方法可能是使用像[require.js](http://requirejs.org/)这样的加载器脚本。在相应的设置中,您可以添加要加载的基本路径。然而,Require.js特别期望您的JavaScript文件遵循AMD模式,但可能会有类似的库,但不会。 – Sirko