在“公共”文件夹(使用Express / NodeJS和EJS)内部模拟静态前端.js文件的正确方法是什么?
有没有一种方法来模板静态前端.js文件(“公共”文件夹中的那些文件),就像我用EJS模板我的HTML一样?
这甚至可能吗? 如果是的话,最好的办法是什么?
对js,css文件进行模板化确实是一个坏主意,因为浏览器caching这些js文件(如果它们具有Cache-Control标头),并且大多数反向代理(如cloudflare)将Cache-Control标头默认设置为所有静态文件。
有两种方法可以解决这个问题。
- 使用隐藏的表单域
EJS:
<input type="hidden" name="language" id="language" value="<%-language%>">
JS:
var language = document.getElementById('language').value; console.log(language)
- 在添加.js文件并在其中分配variables值之前,只需在ejs文件中编写一个脚本块即可。
EJS:
<script> var language = <%-language%></script>
JS:
console.log(language)