生产环境商城配置多台服务器之后,商城后台访问不到css和js文件

技术问题 · Andrew · 于 5年前 发布 · 1957 次阅读

商城生产环境部署了多台服务器之后,商城后台css文件和js文件(/appadmin/assets/7359cb8e/themes/default/style.css、/appadmin/assets/7359cb8e/js/jquery-2.1.4.min.js)请求都报500错误,在生产服务器上看了找到这个目录看了下,在web/appadmin/assets目录下不存在7359cb8e这个文件夹,具体原因不明,有遇到过同样问题的朋友吗?

共收到 10 条回复
Andrew#15年前 0 个赞

appadmin接口都可以正常访问,就是后台的css样式和图片都出不来

Andrew#25年前 0 个赞

刚试了下,直接通过ip访问商城后台,css样式和js文件都可以加载到,通过域名分配及其就不行了,assets目录创建文件是不是不支持多台服务器配置?

Fecmall#35年前 0 个赞

@app/web/assets文件夹要设置成可写!!

js 和css文件是通过asset发布到@app/web/asset文件夹下面的, 然后这样加载

<link href="/assets/5c1db8f5/css/style.css?v=2" rel="stylesheet">
<link href="/assets/5c1db8f5/css/owl.carousel.css?v=2" rel="stylesheet"></head>

如果你多有个php,yii2应该也会在每个php实例复制文件到相应的assets目录

你看看你的css和js的url路径(通过页面源代码),然后,在@app/web/assets文件夹下面看看有没有相应的文件, 看看是什么情况,所有的php实例都没有,还是某个实例没有这些js和css文件。

Fecmall#45年前 0 个赞

如果使用cdn,就需要将@app/web/assets,发布后的文件,复制到cdn里面,然后页面加载远程的CDN的js css 的url地址。

Fecmall#55年前 0 个赞

你的问题有疑问

既然找不到文件 , 在web/appadmin/assets目录下不存在7359cb8e这个文件夹,为什么通过ip还可以访问?

另外,除了后台,其他的入口是否可以正常访问?

Fecmall#65年前 0 个赞

你的问题应该是这个原因造成的

nginx下面N个php,你的网站的内容访问的是一个php实例,但是js和css访问的其他的php实例,因为其他的实例没有执行php,因此造成没有css和js文件

我猜测你的所有的php实例,应该至少有一个php实例有这个文件夹的

最简单的办法,就是使用NFS,将其中一个php实例的@app/web/asset挂载到其他的php实例的@app/web/asset ,然后就可以了,不过这种有内网传递js和css文件的网络成本。

这个应该要写一个脚本,你可以先这样处理,后面找时间解决一下这个问题

Andrew#75年前 0 个赞

临时的解决方案是生产环境商城后台请求都指向同一台服务器

Fecmall#85年前 0 个赞

@Andrew #7楼 前台没有问题?

前台如果有问题参看:http://www.fecshop.com/topic/1450

Andrew#95年前 0 个赞

@Fecshop #8楼 我们是用商城后台配置商品,然后提供接口给前端,页面是重新开发的

Fecmall#105年前 0 个赞

@Andrew #9楼

恩,接口化的前端应用不需要fecshop的js和css了,后端访问量不大,可以强制使用某台主机来解决。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics