0

我是新手,但我在过去的 2 天里一直在阅读,所以我读的越多,就越混乱。找不到一个简单的说明或示例来遵循,或者这个非常重要的问题的简单而完整的答案。

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

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

问题是我如何加载它,因为我不能使用诸如$HOMEor~或环境变量之类的东西,所以相同的代码可以在我的家用电脑上运行,当我将它上传到我的个人网站时也是如此.

为了简单地回答这个问题,我在我的电脑上展示了布局:

   C:/public_html/common_files/common.js
   C:/public_html/report/index.htm

在服务器上,假设我的站点被称为www.ABC.com,当我通过 ftp 访问它时,我看到了public_html/我应该放置所有内容的文件夹。所以在服务器上,我创建了与上面相同的设置

   /public_html/common_files/common.js
   /public_html/report/index.htm

到目前为止,一切都很好。现在是困难的部分。

如何从 index.htm 文件加载 common.js?我不想用src=../../common_files/common.js,为什么?因为我可能想要更改树的布局,并且如果我将报告移动到另一个级别,我不想编辑它并继续更改路径并计算“../../../../. 。“ ETC..

我看了很多东西,喜欢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 和服务器上都可以工作,但不使用相对路径?

请不要给我更多的链接查看,或部分答案,或要求我下载一些商业软件来执行此操作或复杂的非常高级的命令。这个问题是如此基本,解决方案应该很容易理解。

4

2 回答 2

4

从外观上看,您似乎是在 PC 上本地运行文件。尝试在您的 PC 上安装服务器,以复制服务器的结构。像XAMPP这样的东西会做。在您的服务器上,您的域的根目录是public_html. 在 XAMPP 设置中,这将是htdocs文件夹。

如果您移动文件的次数太多,那么请考虑从域的根目录开始的位置,例如“样式”和“脚本”文件夹。

public_html/
 '-- scripts/
 '-- styles/
 '-- everything else

然后用前导加载它们//来自您的域根的领先手段。

<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>
于 2013-05-22T06:27:20.263 回答
1

为了防止评论变成长的对话,我会尝试用一些额外的信息来回答。

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

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

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

我知道,如果您只想提供不需要任何服务器端处理的静态页面(html、js、css、图像等),特别是如果您是在老化的笔记本电脑上运行它!

我已经(在Go中)编写了一个非常简单的 Web 服务器,它由一个大小约为 3 或 4 MB 的单个可执行文件组成,默认情况下它将服务于名为wwwon的文件夹中的所有内容。http://localhost它还具有命令行开关,可将端口从默认的 80 更改为监听,而不仅仅是localhost. 有关详细信息,请参阅http://github.com/Intermernet/ssws

您可以直接从https://github.com/Intermernet/ssws/blob/master/bin/windows_amd64/ssws_windows_amd64.zip?raw=true下载 64 位 Windows 版本。如果您需要 32 位版本,请告诉我,我会为您编译一个,上传并将链接发送给您。

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

当您启动(双击)exe 文件时localhost,默认情况下它将开始为您的站点文件提供服务。如果您不想手动启动服务器,请将其放在您的Startup文件夹中。

这将允许您编辑文件夹下的www文件,只需刷新浏览器即可立即查看更改。

在没有本地 Web 服务器的情况下进行本地 Web 开发是可能的,但正如您所发现的那样,有许多陷阱。

我希望你能做到这一点,因为我不想看到你对 Web 开发失去信心或信心。这些“系统管理员”任务并不是程序员真正想要处理的,但有时他们必须这样做!

此外,当您尝试编写基于动态服务器的代码(PHP、Ruby、Python、Node.js 等)时,您几乎肯定需要放弃我的简单服务器,转而使用 XAMPP 之类的东西。

祝你好运!

于 2013-05-22T09:35:26.453 回答