怎么设置图片和css和js的路径

#1 小桃子

这是我的文件结构,网站访问路径为:http://localhost/sp  

1.jpg


我想问下图片和css,js放哪合适呢,如果在index.php同级目录下建立images,js,css文件夹来存放,那么要用到绝对路径,
总不能在代码里写http://localhost/sp/images/1.jpg吧,所以把http://localhost/sp设成变量,其实就是读取spconfig中

'url' => array(
  'url_path_info' => FALSE,  
'url_path_base' => '/sp/index.php',
),

'url_path_base' 的值,可是怎么获取呢?而且用这样的方法在smarty模板中图片css,js的路径都要用变量代替了,这样在dreamweaver中就看不到视图效果了,大家有什么更好的方法吗?

2009-12-29 13:39:11

#2 jake

绝对路径的意思是以 / 开头的路径。

这是绝对路径
而不需要


你可以在index.php内:
define("BASEPATH", "/sp/");

然后在程序中使用
BASEPATH这个常量就是路径

在smarty中可以用$smarty.const.BASEPATH 就是这个值
比如


$smarty.const.是smarty内获取常量的方法。

2009-12-29 13:45:27

#3 小桃子

我懂了谢谢哈,不过用变量的话,在dw中看不到图片的

2009-12-29 13:50:01

#4 小桃子

我现在在index.php中定义define("imgpath","/sp/images/");
在控制器里定义 $this->imgpath=constant("imgpath");
在传给smarty模版$this->display('white/index.html');
在模板中调用

来实现图片显示,唯一的不足就是没法在dw中预览图片,呵呵

2009-12-29 14:27:03

#5 jake

一般网页设计都是直接修改代码和CSS的,DW的预览只是前期网页设计的时候使用,

到了套模板之后也很少会用DW的预览功能了。

你可以看看像WORDPRESS或者DISCUZ之类的程序,模板也是在DW内不能用预览方法去看图片的

2009-12-29 14:32:51

#6 setlt

我是这样做的,先在DW里面做好静态页面,然后把images及js等前台文件夹放在与index.php平级的路径下。在index.php中定义常量define(‘BASEPATH’,'http://locclhost/sp/');然后在smarty模板中设置,这样通过一个地方的设置,里面除了js文件以外的其他文件都变成了绝对路径,你也不用在每个图片前面添加其他什么。个人感觉这样还是比较方便的。移植时,只要更改index.php文件中的BASEPATH常量的值,就可以了。

2009-12-29 14:36:22

#7 小桃子

:handshake感谢楼上2位的解答

2009-12-29 14:55:06

#8 cdh

小桃子的问题很好!小桃子加油

2010-01-01 21:50:22

#9 小桃子

用绝对路径还是不合理的

2010-01-02 20:23:30

#10 wubi

用绝对路径还是不合理的
小桃子 发表于 2010-1-2 20:23
其他的PHP框架或者是程序基本上都是建议用绝对路径,这是在实践开发中的总结出来的经验哦

2010-01-02 20:26:48

#11 小桃子

回复 10 wubi


   比如你在htdocs下面建立myweb文件夹,在myweb文件夹下放你的网站文件,htm里使用就是绝对路径了,但是这么做意味着以后网站移植的时候myweb文件夹不能重命名了,否则程序里的/myweb都要改,这是不合理的

2010-01-03 11:50:01

#12 霸气千秋

回复 6 setlt
:lol这种方法很实用,嘿嘿,学习了

2011-07-20 15:03:29

#13 wubi

回复  wubi


   比如你在htdocs下面建立myweb文件夹,在myweb文件夹下放你的网站文件,htm里使用就是绝对 ...
小桃子 发表于 2010-1-3 11:50
无语啊,一个应用程序什么时候改名字那么频繁了?我做了几年都没遇过要改图片目录的情况。

2011-07-20 18:41:26

#14 jake

关于路径,手册里面已经有详细的说明。可以参考一下

2011-07-20 21:36:11

#15 浮华之辰

不是都定义过APP_PATH了吗?直接在js,css,图片文件之前加上APP_PATH不就行了吗?:P

2011-08-16 10:46:59

#16 浮华之辰

不是都定义过APP_PATH了吗?直接在js,css,图片文件之前加上APP_PATH不就行了吗?:P

2011-08-16 10:48:19

#17 浮华之辰

回复 2 jake
jake,麻烦问一下,可以直接在js,css,图片文件之前加APP_PATH吗?这样不就是绝对路径吗?还需要重新定义define("BASEPATH", "/sp/");吗?

2011-08-16 10:50:44

#18 jake

回复 17 浮华之辰


   APP_PATH是物理路径,它不等于BASEPATH。

2011-08-16 12:18:59

#19 anythink

很少能够在开发的时候还能看到css  img 的......................

2011-09-07 18:47:43

#20 Clear

jake 发表于 2011-7-20 21:36
关于路径,手册里面已经有详细的说明。可以参考一下
jake,你好,我想问一下就是我的css,js,image都是用的是绝对路径 ,那我都需要在$spConfig中配置什么.
例子:我在根目录里面建一个test文件夹,里面是程序源代码.在文件夹里面有个sources文件夹。
我在模版中的引用方式是"/sources/js/1.js"
我该怎么进行配置.


2012-07-05 16:09:36