在“公共”文件夹(使用Express / NodeJS和EJS)内部模拟静态前端.js文件的正确方法是什么?

有没有一种方法来模板静态前端.js文件(“公共”文件夹中的那些文件),就像我用EJS模板我的HTML一样?

这甚至可能吗? 如果是的话,最好的办法是什么?

对js,css文件进行模板化确实是一个坏主意,因为浏览器caching这些js文件(如果它们具有Cache-Control标头),并且大多数反向代理(如cloudflare)将Cache-Control标头默认设置为所有静态文件。

有两种方法可以解决这个问题。

  1. 使用隐藏的表单域

EJS:

<input type="hidden" name="language" id="language" value="<%-language%>">

JS:

var language = document.getElementById('language').value; console.log(language)

  1. 在添加.js文件并在其中分配variables值之前,只需在ejs文件中编写一个脚本块即可。

EJS:

<script> var language = <%-language%></script>

JS:

console.log(language)