如何在静态网站的 head 标签中动态更改样式表和 js 文件的基本 url

叶什万斯 B

我正在一个静态网站上工作而不使用 SSG 并在本地环境中测试它时手动创建所有页面它很好但是当我托管它时我需要更改域名并且弄乱了文件的位置在 html 页面的头部和正文中,所以我正在寻找通过将基本 url 分配给变量然后将其插入无效的 head 标记来解决该问题,所以我遇到了这个解决方案

这就是我想要实现的在 <head> 中动态添加链接样式表

但问题是我有多个样式表和 js 文件,这不是解决它的理想方法,所以我如何才能在不弄乱我网页上的代码的情况下实现这一点,例如变量或附加函数之类的东西让我添加一个域/基本 url 一次,然后就可以完成其余的工作。

类似的东西,但对于静态页面

<link href="<?=getThemeURI()?>/assets/css/theme.css" rel="stylesheet"/>

如果可能的话,我想有一个 js 解决方案

马诺伊

使用 javascript,您可以使用 window.location 获取当前域

`${window.location.protocol}//${window.location.hostname}`

所以当你不需要支持旧的浏览器时,你可以用简单的方法来做

const stylesheets = document.querySelectorAll('link[rel="stylesheet"]');
const domain = `${window.location.protocol}//${window.location.hostname}`
stylesheets.forEach((sheet) => {
  const href = sheet.getAttribute('href');
  sheet.setAttribute('href', `${domain}/${href}`);
});

所以在你的样式表中你只需要写路径,例如'assets/css/theme.css'。域将通过 javascript 添加。

如果您当前的域不是您的 themeURL,那么您可以设置一个配置文件并从那里通过 ajax 调用获取该信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

外部js文件中的PHP基本URL

在WordPress中动态更改样式表中的URL路径

如何从json文件中的基本url制作动态url

如何在下一个 js 中动态更改全局样式表

如何在MVC中获取网站的基本URL

如何在CSS和JS中更改CSS样式表?

我们如何将样式表放在目标c的head标签中

如何在Angular 7中设置静态文件的基本路径?

静态文件,带有Node.js和Express的样式表

在网站上的任何地方动态更改样式表onclick

使用外部JS文件中的Head.js加载资源

如何在基于流星的网站的js文件中创建类?

如何在Express JS中包含静态文件

如何在node.js中访问静态文件

Angular 2-如何基于URL queryparams动态更改整个CSS样式表

以不同的顺序附加样式表或js文件有什么区别?如何使用追加和前置样式表或追加和前置文件?

如何在Android的build.gradle文件中为flutter应用程序定义基本URL?

如何在ASP.NET Core中获取网站的基本URL?

如何在静态块中获取特定商店视图的基本URL?

如何在样式表的URL中换行

如何在静态网站中搜索 html 文件,无论位于任何页面搜索栏

如何更改样式表的src属性

如何使用下拉框更改样式表?

如何在 next.js >= 9.3 配置中配置全局和本地样式表?

从文件<<<<<< head中删除git head

使用js Regex在URL中查找特定的静态文件

如何在Magento 2的javascript文件中获取静态图片文件的url?

如何更改网站的基本URl-Laravel 5.4

静态文件更改未反映在投放的样式表中