您好,欢迎访问一九零五行业门户网

thinkphp模板路径问题

第一次使用thinkphp,关于模板里资源文件路径的设置一直搞不懂。
比如
我的项目采用了分组‘admin’和‘content’,之前为了测试模板显示效果简单地写了个pagetestaction只有一个show方法来display模板而且为了方便设置了默认分组、默认模型、默认方法,因而访问地址http://localhost/xblog(项目名)/index.php一切正常。
而当我使用正常的路径http://localhost/xblog/index.php/content/pagetest/show来访问是资源文件便无效了
按照我的理解 ’__public__‘=‘/public’因而 ‘.__public__‘=‘./public’, 而'./'表示当前目录,所以‘./public’这个相对地址是相对于index.php的,然而当后面加上’/content/pagetest/show‘就不行了,难道’/content/pagetest/show‘也是作为路径存在的吗,他改变了当前的路径?他不是用来表示分组、模块、方法的虚拟路径吗?
还有,我发现如果写成网站根目录相对地址是这样的,不理解分什么中间还夹着一个项目名目录?还有‘__root__: 会替换成当前网站的地址(不含域名)__app__: 会替换成当前项目的url地址 (不含域名)’,难道一个网站可以包含多个项目?
__root__和__app__是什么关系?
虽然在本地www文件夹下却是存在多个项目,但是在服务器上正式部署不是这样的吧?/xblog(项目名)/public/theme/default/css/bootstrap.min.css这种写法会不会对部署有影响?
回复讨论(解决方案) 可以查看thinkphp手册:1、__root__和__app__ 为系统常量。
单个模块tpl模板里面可以使用相对路径来引用文件的
可以查看thinkphp手册:1、__root__和__app__ 为系统常量。
单个模块tpl模板里面可以使用相对路径来引用文件的
你这等于什么都没说啊!能针对我的问题解答一下吗?还有你难道没发现‘__root__: 会替换成当前网站的地址(不含域名)__app__: 会替换成当前项目的url地址 (不含域名)’这句话就是从thinkphp手册粘贴的吗?我就是没看明白才问的好不好? www/  网站的根 http://localhost/
www/index.php 入口文件 http://localhost/index.php
www/app/ 项目目录 http://localhost/app/
www/app/... 项目中的所有文件、目录
www/  网站的根 http://localhost/
www/index.php 入口文件 http://localhost/index.php
www/app/ 项目目录 http://localhost/app/
www/app/... 项目中的所有文件、目录
可是我的项目结构不是这样的啊?
入口文件也在app目录下啊,这是thinkphp自动生成的目录结构啊
www/  网站的根 http://localhost/
www/index.php 入口文件 http://localhost/index.php
www/app/ 项目目录 http://localhost/app/
www/app/... 项目中的所有文件、目录
“首先,在服务器或者本地的web目录下面创建一个app目录,并且把下载的thinkphp框架的thinkphp目录拷贝到app目录下面,然后在app目录下面创建一个index.php文件,该文件就是我们要创建项目的入口文件。”这是thinkphp手册上的原话 第一个问题:
/content/pagetest/show确实改变了路径,因此模板中资源地址要使用相对于根目录的路径而非当前地址。
第二个问题:
/xblog应该是你在www目录下创建的项目文件夹吧,网站根目录指的是www文件夹而非项目文件夹
第三个问题:
/xblog(项目名)/public/theme/default/css/bootstrap.min.css这种写法对部署当然有影响,因为部署时通常将项目文件夹下的内容直接放到www文件夹下,如果这样就应去掉/xblog(项目名)
其它类似信息

推荐信息