服务器上的网站处理文件路径的方式与本地版本

时间:2018-05-30 02:23:07

标签: javascript html css server localhost

使用Localhost,我的HTML / CSS / JQuery堆栈网站工作得很好,但是,当上传到服务器时,事情就会中断。具体来说,是JavaScript文件中的src路径。上传后,索引HTML可以通过脚本标记找到相应的JS文件。但是,从那些链接的JS文件中出现问题......

保持全局,我有使用某些imgs或其他文件的路径的JS文件。这些JS文件存储在文件夹中。你有

.
├── index.html
|
├── js
│   └── components
│        └── functions.js
└── img
     └── circle.jpg

在index.html中,调用functions.js。从functions.js中我有一个指向circle.jpg的路径。在localhost上,路径为" ../../ img / circle.jpg"因为它将组件文件夹视为当前工作目录(cwd)"您在functions.js文件中的组件文件夹中工作,现在转到img文件夹"

但是,在服务器上,cwd是根文件夹。我想那是因为function.js是从index.html调用的,因为index.html在root中,所以它说"要到circle.jpg你必须去" img / circle.jpg&# 34;

为什么?这没有意义,让它在服务器上运行我现在必须从JS文件中更改所有文件路径。这显然不是HTML中src路径的问题,因为它识别标签并运行Javascript。在尝试根据您提供的路径查找imgs时会中断。由于上述原因,它无法根据这些路径在JS中找到图像。而不是更改javascript中的所有路径,我如何修复服务器的即将发生的问题处理路径不同于本地版本?

1 个答案:

答案 0 :(得分:0)

添加< base href =“”> index.html的head部分中的标记

<head>
<base href="/">
<!-- other head items -->
</head>

如果您的index.html是域的根路径(例如 http: // someurl.com/index.html ),则上述应该有效。或者,如果index.html位于子文件夹中,请将子文件夹路径提供为 href 值。等,

<base href="/subfolder/">