假设我们启动纯HTML5 / JS / JSON应用程序。因此浏览器中的UI,JS处理的用户交互,AJAX中的数据获取/存储。
纯我知道您不会预处理任何.html
,.js
,.css
个文件(除了少数文件) configs)与任何视图模板引擎,scriplets等。只是作为静态资源传递。
要成为可维护的项目资源,在层次结构中按层/
(以及文件存储中的目录)中的多个级别构建。
我们不希望在代码中内联任何特定的网址。
如何在HTML / JS中定义URL,以便可以移动项目而无需更改.html
,.js
文件(少数配置文件除外)?
我在以下HTML代码中看到了问题:
<script src=".../js/...">
<style src=".../css/...">
<image src=".../img/...">
并遵循以下JS代码:
ajax('GET', 'http://.../ajax/...');
预处理文件时,您可以使用:
<script src="${base}/js/...">
<style src="${base}/css/...">
<image src="${base}/img/...">
ajax('GET', '${base}/ajax/...');
请注意,从../../ajax/data.json
获取数据的相对路径(如/html/data/list.html
)可能无法在包含的JS代码中使用(因为您不知道此包含发生在哪个HTML级别,所以不要知道多少条/
)。
或纯HTML 5项目是神话?
一次预处理器传递用于插入具体的IP / DN和上下文URL部分解决问题,但在那种情况下部署远程复杂然后只复制文件并设置静态内容托管...