宝塔nginx配置子目录后目录下的 图片、js、css 文件无法访问

CI4 上传目录与 public目录不是一级,上传目录在/public 同级的可写/writable/uploads/目录下面,上传的文件需要能在外网访问。

http://banji.域名演示.cn/uploads/20240129/1706520523_5d253238c77666c0e4a4.jpg

讲本地部署的apache 的规则中添加的 域名下的子目录 改为宝塔面板上面的 nginx 伪静态的配置之后,发现子目录的请求要么是404 ,或者是直接下载,访问上传的图片无法打开。

将配置文件中的 图片和js css 缓存的配置改一下。

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

error_log /dev/null;

access_log /dev/null;

}

location ~ .*.(js|css)?$

{

expires 12h;

error_log /dev/null;

access_log /dev/null;

}

.*改成 /

location ~ /.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

error_log /dev/null;

access_log /dev/null;

}

location ~ /.(js|css)?$

{

expires 12h;

error_log /dev/null;

access_log /dev/null;

}

修改后的截图

其他资料:

Xampp 下开发时的虚拟机绑定,增加子目录

<VirtualHost *:80>

DocumentRoot “E:/workcode/crm/public”

ServerName crm.bitx.cn

ErrorLog “logs/dummy-host2.example.com-error.log”

CustomLog “logs/dummy-host2.example.com-access.log” common

<Directory “E:/workcode/crm/public”>

AllowOverride All

Require all granted

</Directory>

<Directory “E:/workcode/crm/writable/uploads”>

Require all granted

</Directory>

Alias /uploads “E:/workcode/crm/writable/uploads”

</VirtualHost>

1、宝塔安装Codeigniter 4 框架:

安装宝塔的 lnmp环境后,需要做一些初始设置,比如创建站点,创建数据库,在站点目录下下载 Codeigniter 4 程序,有两种方式,直接下载安装包,解压到根目录。 另外一种是使用 Composer。

宝塔中大部分命令是选择的,只需要将包里的内容进行加载即可。然后再依次执行安装,初始化命令即可。

codeigniter4/appstarter

2、修改配置文件

安装完主程序后配置 env文件,将跟目录下 env 文件修改为 .env 文件。

在里面设置好配置换环境,需要的设置的行删掉 #。

设置环境是测试还是生产,两种环境变量:

ENVIRONMENT development production

3、设置路由伪静态环境

在宝塔中部署ci4的伪静态规则:

location /{

try_files $uri $uri/ /index.php$is_args$args;

}

location /uploads {

alias ‘/www/wwwroot/crm/writable/uploads’;

或者使用root指令

#root /www/wwwroot/crm/writable/uploads;

index index.html index.htm;

#try_files $uri $uri/;

}

设置网站目录为public

设置伪静态,我增加了一个uploads 目录。

如果有其他目录修改,需要配置一下 css、js 和图片的nginx 规则

5、宝塔面板部署 Codeigniter 4 时还需要开启php7.4 和以上版本的 intl 扩展。

6、宝塔面板部署 Codeigniter 4 需要依赖putenv函数 ,宝塔的php程序是默认禁用这个函数的,需要删除禁用函数:putenv()。

7、其他代码开发需要你自己学习官方文档了。

中文官方文档。

https://codeigniter.org.cn/user_guide/index.html