添加备注2015.4.8
最终决定采用相对路径方法,
/img/img.jpg这种“绝对”路径写法必须在网站环境中才能识别,不利于静态页面的查看,故不予采用!
所以采用img/img.jpg或../img/img.jpg这种写法。
至于是同级还是向上一级,看页面代码文件的位置(即:网站运行后生成的页面文件的位置)
在进行前端开发之前,先搞清出项目平台(php、.net等),然后搞清楚页面代码文件(引用你的html文件的代码文件)所处的位置。
如果是最外层的,则将html文件也建在最外层,如果是某个文件夹(如:Browse或page),则html文件也放到一个目录中,这样保证后端开发时,不需要更改资源引用路径。
并且不影响本地查看(双击html文件看效果及通过网站地址(192.168.1.XXX))查看。
网站运行后生成的页面文件的位置:
目前遇到的项目:
php中,虽然模板文件一般在template文件夹中,但是页面代码文件(生成的页面文件)是最外层的文件。
.net中,虽然模板文件在page文件中,但是页面代码文件(生成的页面文件)在browse文件夹中。
看网址的区别:
http://www.xxxx.com/news_show.php?id=18604
http://www.xxxx.com/browse/Info.aspx?mid=17&subid=21
再次重新分析
其实一共只有两种区别。现在给自己的规定:模板文件必须为.html后缀。
一,把模板文件直接放到page等模板文件夹中
这是按开发结构建立的,经后端程序员夹杂了后端代码的.html文件也会出现在此文件夹。
优势,
①svn比对差异方便:选中两个文件,右击svn比较差异即可。可以保证后续开发的更改也能实时的同步。
②项目结构开起来比较整齐。
缺点:想要查看静态效果。需要修改外层动态文件(.php等)中的代码才可以。
二,直接将模板文件放在外层。
这是通用做法,适合页面制作。
优点:直接双击查看效果。
缺点:svn比对差异不方便,需要手动将html拖进或复制进page文件夹中比对。
重新分析
其实如果单考虑页面的制作的话,就两种情形。
1、【通用做法】如下图
然后后续开发时,直接将本文档发送给程序员,让他们去建立文件结构去。
或者通过svn提交,但是这样.php文件写了以后,会变的很麻烦。(.php等文件和.html同处在最外层文件夹中会显得很乱,svn比对也会很麻烦)
2、把html页面预先放到page目录中,如下图
分析:这样资源引用路径就变了,需要向外跳一层,要不然打开的页面都加载不到资源。
解决办法就是,自己先写好对应的index.php、page.php等文件,
然后通过下面代码跳转到page文件夹中,
<?php $ModeUrl="index";require_once('page/'.$ModeUrl.'.html'); ?>
这样后续开发时,因为文件结构已经建立,所以只需要将内层的html复制一份(为了保存初始文档),改后缀名为php即可直接提交svn。
(这里之所以按开发结构放html文件,还不把html后缀名改为php,而是选择在提交svn前复制一份在改,就是为了保存一份自己开发的最终版的html)
(但是一旦开发中,还是以.php为准。.html可以不管,要不然累死了。)
这样做查看自己的效果的时候,除了上面的代码中后缀名改为.html外,还有一个比较快的方法,就是将html文件复制出来,输入http://192.168.1.XX:XX查看效果,看完了如果修改了直接拖进page文件夹替换,没修改直接删除。
之前的:
方法一:将静态代码直接写到page/index_page.php中,通过index.php指向它
(放弃此种做法2015.1.22:静态文件中就是为了不出现动态代码的。这种方法会误导。而且也不利于直接查看。方法二和方法三都是可以直接查双击查看的(方法二需要先将html文件移到外层))
架构:
index.php
page/index.php + page/index_page.php
说明:index.php中写
<?php
$ModeUrl="index_page"
require_once('page/'.$ModeUrl.'.php');
?>
(一) 还没有php静态页时,
①以其中的一个为准,执行修改操作后,全选+复制(page/index.php)→全选+粘贴(page/index_page.php)
②或者只新建一个page/index.php,但是在首次进行带有PHP代码的svn更新前,
记得备份一下page/index.php,重命名成page/index_page.php。
以后开发中,每次更改page/index.php的时候,记得覆盖一下page/index_page.php中的内容。
(二)一旦index.php添加php代码后,就不能全选覆盖粘贴了。只能手动更改两处。
想要查看静态页效果时,需要修改:$ModeUrl="index_page";然后输入:192.168.1.1/index.php
方法二:将静态代码直接写到page/index.html中,通过index.php指向它。
架构:
index.php
page/index.php + page/index.html
index.php中写
<?php
$ModeUrl="index"
require_once('page/'.$ModeUrl.'.html');
?>
说明:同上
和方法一没啥区别,只不过提交svn后,能强制后端重新建一个对应的php文件。或者强制自己建一个对应的.php再提交。
方法一,你提交后可能后端直接就使用index_page.php了也说不定。
还有一个好处,就是保证了你的html模板文件中不会出现后台开发代码。(不知道php中出现了会怎样,目前接触的php网站项目,page(template)目录中都是.php后缀的。但是.net的模板文件夹中都是.html的并且可以夹杂后端开发代码。)
--(add on 2015.1.22)
在有php静态页后,想要查看静态页效果时,
需要修改:require_once('page/'.$ModeUrl.'.html');然后输入:192.168.1.1/index.php
方法三:将静态代码直接写到index.html中(通用做法)
架构:
index.php + index.html
page/index.php
直接在外层建index.html。无需index.php即可浏览。
说明:推荐,实践中,看是否顺手,index.html和page/index.php没在一个文件夹中,后续开发中,手动同步比较麻烦。无法进行svn比较差异。
注:这种方法,在page/index.html→page/index.php时,不需要修改css、js等文件引用路径。
在有php静态页后,想要查看静态页效果时,直接输入192.168.1.1/index.html
点评:和方法二,没有区别,把html文件直接拖进page(template)文件夹。
点评二:这是通用模板页面的制作方法,程序开发直接把外层的html页面移动到一个page或者template文件夹中就能开发了。
方法四:将静态代码直接写到page/index.html中,不通过index.php指向
架构:
index.php
page/index.html + page/index.php
和方法二不同的是,和index.php无关,通过192.168.1.1/page/index.html浏览。
说明:极不推荐,因为page/index.html→page/index.php时,需要修改css、js等文件引用路径(向上一层)。比较麻烦。
在有php静态页后,想要查看静态页效果时,需要输入192.168.1.1/page/index.html
点评:这是按网站程序开发的架构去搞静态页面,实际运用中,page文件夹中的静态页面的资源引用路径都要向上一层。这是个很大的问题。
附录:开源框架使用方法:
将amui解压后的包,直接放到项目的和page同级的目录中,这样通过地址栏就可以访问了。
最后的ps,要先通过iis建立网站,分配端口号,并指向对应文件夹。这样你才能通过http://192.168.1.XX:XXXX访问。