我希望网页执行远程托管的js脚本。该脚本使用脚本的 own 目录中的图像资产。可以仅在脚本中使用相对文件路径吗?
在远程运行时,相对文件路径被解释为相对于网页文件,而不是相对于远程脚本本身。
我想在不修改脚本以使用绝对路径的情况下处理此问题,因为该脚本可移植。该网页只是该项目的展示。这可以用HTML做到吗?
具体地说,我有一个由github页面提供的javascript文件,例如:
https://user.github.io/repo/script.js
使用位于该存储库中的一些图像资产,例如:
https://user.github.io/repo/assets/image.png
该脚本使用本地路径加载其资产,例如:
imgBird = loadImage('assets/bird.png');
在远程加载脚本时,此方法不起作用,因为该脚本在网页目录中查找assets/bird.png
,而不是远程资源。
HTML源当前使用以下内容尝试运行脚本:
<script src="https://user.github.io/repo/script.js">
存在similar problem,但是答案是基于脚本的。我想避免修改脚本的工作方式,因为它旨在成为入门级脚本,并且易于理解。
答案 0 :(得分:0)
不。路径是相对于包含脚本标签的页面的,而不是脚本本身。为了使脚本正常运行,需要知道/assets
的网址。
答案 1 :(得分:0)
最简单的方法是编辑脚本。添加主机名变量,然后将其添加到路径
const hostname = 'https://user.github.io/repo/'
imgBird = loadImage(`${hostname}assets/bird.png`);
然后您可以在移动项目时稍后将hostname变量更改为另一个