thinkphp5在public同级创建了一个文件夹,然后js,css放在里面,怎么加载啊?

html-css010

thinkphp5在public同级创建了一个文件夹,然后js,css放在里面,怎么加载啊?,第1张

首先,静态资源应该放在public中。

一般与public放同级目录的文件,都是不希望被外部访问到的私有文件。可以在服务端中访问到。

css,js属于公开文件,在模板中加载的话。只能从根目录开始找。所有应该放在根目录public或者public的下级目录。

如果一定要放在public同级目录的话。可以使用thinkphp模板标签中的include标签,做了一个小案例:

在public同级下创建了一个style文件夹。里面创建了一个test.css文件。

然后在模板中使用{include file="../style/test.css"}调用。

本地已测试可用。但任然建议,公开文件应该放在public下。用上面的方法调用css,总觉得怪怪的。

index.html文件中改为:

替换前,网页会显示为 www.php.cn

替换后,网页会变为PHP中文网

接下来我们创建一个CSS文件,它是系统的静态资源文件,放在public\static文件夹中。

在该文件夹中创建一个css文件夹,在其中创建一个style.css文件。

该文件内容:

然后将这个css文件引入到模板文件中:

如果要引入很多个css文件,每个都写一行,如果之后替换目录了岂不是要一个一个修改?太累了,这时就需要输出替换的方式了。

可以在idnex.php中添加一句:

然后在index.html中,改为:

之后如果要更改css目录,只要在index.php中更改 __CSS__ 的值就可以了。可用于主题的更改。

如果把$thid->fetch()改为view(),就是使用助手函数的方式,如下:

效果一样。

以上是一个模板中引入web资源文件的例子,如果项目中所有的模板都使用这些字符串替换该怎么办呢?可以把它写在配置项里。

打开convention.php文件,找到

复制到自定义的配置文件config.php中:

学习CSS肯定绕不开的就是如何将css引入到HTML文件中,引入方式主要有三种:

内联样式、内部样式、外部样式

1、内联样式

内联样式又称行内样式,使用该样式需要直接在标签内添加“ style=" " ”,再将需要的样式写在双引号内,如

<div style="background: red">hello world!</div>1

行内样式比较适合初学者学习的时候使用,在网站开发时尽量不要去用,因为使用这种样式会把结构和CSS全部融合在一个页面里面,造成代码冗余,后期调整样式的时候非常不方便。

2、内部样式

内部样式是一种适合案例或者比较小的页面的引入方式,它的语法是在在head标签里添加style标签,再在style标签的内容区添加需要的样式,如:

<head>

<style type="text/css">

div{background: red}</style>

</head>12345

内部样式比较适合案例或者比较小的页面中,因为它也会增加HTML文件的代码量。

3、外部样式

外部样式是使用最广的引入方式,适合比较大的页面或者整站开发。引入方法是将样式写css文件中,再将css文件链接到HTML文件里。

而外部样式有两种链接方法引入HTML文件中:link和import

1)用link链接需要在html文件内添加link标签,在该标签内属性“ href=" " ”的双引号里写上css文件的路径即可。

<link rel="stylesheet" type="text/css" href="demo.css"/>1

2)用import链接需要用内部样式的方法添加“ @import url("")”属性,在url("")中写上css文件的路径。

<style>   @import url("demo.css")</style>123

同为外部样式的链接方式,link和import之间的不同不仅是载入链接的语法不同:

本质上link是HTML标签,是HTML的写法,但是import是CSS的提供的一种链接方式。所以link能够引入除css以外的其它文件,而import只能引入css文件。

link是没有兼容问题的,但是import在IE5以下不支持。

加载顺序上也不一样,link是HTML结构和CSS样式同时加载,而import是先加载HTML后加载CSS。有时候网速比较慢,你就会看到只有文字和边框的难看页面,然后才看到比较好看的页面,就是因为这个网页使用import链接的样式。

在用js控制dom修改样式的时候,link可以被修改,但是import不可以。