Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在开发和web服务器上加载公共javascript文件而不使用相对路径?_Javascript_Html - Fatal编程技术网

如何在开发和web服务器上加载公共javascript文件而不使用相对路径?

如何在开发和web服务器上加载公共javascript文件而不使用相对路径?,javascript,html,Javascript,Html,我是一个新手,但我已经花了最后两天的时间阅读,所以我可能会在这方面的东西,我读得越多,它变得越混乱。找不到一个简单的说明或例子,或者这个非常重要的问题的简单而完整的答案 我只想使用src=包含一个公共javascript文件。然后,当我将此树复制到服务器时,我不想更改代码中的任何内容。我不想使用相对路径,因为我不想每次更改树布局时都编辑HTML文件。我想要一个解决方案,它可以在树位于服务器上时工作,也可以在开发过程中在我的PC上本地工作 我不是在寻找高级或花哨的东西。但这是一个非常简单的解决方案

我是一个新手,但我已经花了最后两天的时间阅读,所以我可能会在这方面的东西,我读得越多,它变得越混乱。找不到一个简单的说明或例子,或者这个非常重要的问题的简单而完整的答案

我只想使用
src=
包含一个公共javascript文件。然后,当我将此树复制到服务器时,我不想更改代码中的任何内容。我不想使用相对路径,因为我不想每次更改树布局时都编辑HTML文件。我想要一个解决方案,它可以在树位于服务器上时工作,也可以在开发过程中在我的PC上本地工作

我不是在寻找高级或花哨的东西。但这是一个非常简单的解决方案。我想要的就是能够在树中的所有HTML文件之间使用一个公共javascript文件

问题是我如何加载它,因为我不能使用像
$HOME
~
之类的东西或环境变量等等,所以相同的代码可以在我的家用电脑上工作,也可以在我上传到我的个人网站时工作

为了简化回答,我在电脑上显示了布局:

   C:/public_html/common_files/common.js
   C:/public_html/report/index.htm
在服务器上,假设我的站点名为
www.ABC.com
,当我用ftp发送到它时,我看到那里有一个
public\u html/
文件夹,我应该把所有东西都放在那里。因此,在服务器上,我创建了与上面相同的设置

   /public_html/common_files/common.js
   /public_html/report/index.htm
到目前为止还不错。现在是最难的部分

如何从index.htm文件加载common.js?我不想使用
src=../../common\u files/common.js
,为什么?因为我可能想更改树的布局,如果我将报告移动到另一个级别,我不想编辑它并不断更改路径和计数“../../../../../…”等

我看了很多东西,比如
ResolverURL
,但不知道如何使用它

我试过了

  <script src="<%=Page.ResolveUrl("~/")%>public_html/common_files/common.js"></script>

但没有起作用。记住,这必须在PC和服务器上工作

这是我当前的index.htm

<!DOCTYPE HTML>
<html>
<head>            
   <script src="../common_files/common.js"></script>       
</head>
<body>
        my site    

</body>
</html>

我的网站
为了解释我在寻找什么,假设$HOME在这个环境中起作用,当然它没有,那么我就可以写了

<!DOCTYPE HTML>
<html>
<head>            
   <script src="{$HOME}/common_files/common.js"></script>       
</head>
<body>
        my site    

</body>
</html>

我的网站
这可以在PC机和服务器上运行(至少在使用linux的PC机上运行)。但以上只是我正在寻找的一个例子,在windows上,我不确定$HOME在哪里,或者如果是,它是如何使用的

问题:如何更改上述
src
以加载
common.js
,使其在PC和服务器上都能工作,但不使用相对路径


请不要给我更多的链接看,或部分答案,或要求我下载一些商业软件来做这件事或复杂的非常先进的命令。这个问题非常基本,解决方法应该很简单。

从外观上看,您似乎在PC上本地运行文件。请尝试在PC上安装服务器,以复制服务器的结构。像这样的事情就行了。在您的服务器上,域的根目录是
public\u html
。在XAMPP设置中,这将是
htdocs
文件夹

如果你移动文件那么多,那么从域的根中考虑一个位置,比如“样式”和“脚本”文件夹。

然后用前导的
/
加载它们。前导的
/
表示来自域的根

<link href="/styles/your.css" type="text/css">
<script src="/scripts/your.js"></script>

<!-- similar to: -->

<link href="http://yourdomain.com/styles/your.css" type="text/css">
<script src="http://yourdomain.com/scripts/your.js"></script>

从外观上看,您似乎在PC上本地运行文件。请尝试在PC上安装服务器,以复制服务器的结构。像这样的事情就行了。在您的服务器上,域的根目录是
public\u html
。在XAMPP设置中,这将是
htdocs
文件夹

如果你移动文件那么多,那么从域的根中考虑一个位置,比如“样式”和“脚本”文件夹。

然后用前导的
/
加载它们。前导的
/
表示来自域的根

<link href="/styles/your.css" type="text/css">
<script src="/scripts/your.js"></script>

<!-- similar to: -->

<link href="http://yourdomain.com/styles/your.css" type="text/css">
<script src="http://yourdomain.com/scripts/your.js"></script>

为了避免评论变成很长的对话,我将尝试用一些额外的信息来回答

首先,术语“绝对路径”是指文件的完整路径,与web根目录相比

当您在没有独立web服务器的情况下打开文件时,web根目录是您从中打开文件的驱动器的根目录(在Windows中,这通常以驱动器号开头,但也可以以斜杠开头)

这意味着,除非将整个驱动器复制到托管公司(坏主意),否则通常需要运行web服务器来提供不是文件系统根的web根

我知道,如果您只想提供不需要任何服务器端处理的静态页面(html、js、css、图像等),那么像XAMPP这样的解决方案(这太棒了)可能会有些过分,尤其是在老化的笔记本电脑上运行时

我已经编写了一个非常简单的web服务器,由一个大小约为3或4 MB的可执行文件组成,它将从
www
on
http://localhost默认情况下,
。它还具有命令行开关,可以将端口从默认的80更改为80,并且可以监听更多的本地主机。有关详细信息,请参阅

您可以直接从下载64位Windows版本。如果你需要一个32位的版本,告诉我,我会为你编译一个,上传并发送链接给你

这应该保存在本地计算机上的某个位置(Documents\WebDev或其他任何位置),然后您只需在同一文件夹中创建一个
www
文件夹,并将您的网站文件复制到
www
文件夹中

启动(双击)exe文件时,它将