Yii2 负载均衡找不到JS,CSS

  1. 在部署项目的时候,用了2台服务器.请求的时候用了负载均衡,导致 YII2 的静态文件(js,css...)报 404 ,原因是: 请求一个页面时 A服务器 去处理,但是静态资源缺请求到了 B服务器 ,B服务器的 YII2资源管理器 还没有在 web\assets 生成目录和静态文件.
  2. 仔细看了下 YII2 的静态资源管理代码:yii\web\AssetManager(定义资源文件包),`yii\web\AssetBundle(资源包之间的文件依赖,加载和创建).有以下几个解决思路:
  • 更改 生成缓存目录的命名方式,保持一致的文件夹,缺点就是访问其中一台服务器时,还没有生成 静态文件目录.需自己访问,直到 2台服务器 有相同的目录即可.

    //配置 main.php components数组下assetManager
    'assetManager'=>[
    //缓存相同的文件到相同的一个文件夹
    'hashCallback'=>function($path){
        return hash('md4', $path);
    },
    //添加文件时间戳
    'appendTimestamp' => true,
    ],
  • 同步缓存目录,这个相对来说是很简单.就是保持2个服务器的有相同的一份静态资源,手动同步就是 FTP 上传,自动同步就是2个服务器之间相互请求保持一致即可.有工具可以使用:Linux rsync目录同步
  • 使用 CDN ,在配置CDN时要把 ‘sourcePath‘赋值为 NULL,而不是空字符串.每一个资源包的CDN地址可以去CDN平台找,也可以自己上传到云空间去访问.个人推荐这种方式.
    'assetManager'=>[
    'bundles'=>[
        //jquery.js
        'yii\web\JqueryAsset' => [
            'sourcePath' => null,
            'baseUrl' => 'https://cdn.bootcss.com/jquery/2.2.4/',
        ],
        //Yii.js
        'yii\web\YiiAsset' => [
            'sourcePath' => null,
            'baseUrl' => 'http://p8mo8fh1z.bkt.clouddn.com/',
        ],
        //bootstrap.css
        'yii\bootstrap\BootstrapAsset' => [
            'sourcePath' => null,
            'baseUrl' => 'https://cdn.bootcss.com/bootstrap/3.3.7/',
        ],
        //bootstrap.js
        'yii\bootstrap\BootstrapPluginAsset' => [
            'sourcePath' => null,
            'baseUrl' => 'https://cdn.bootcss.com/bootstrap/3.3.7/',
        ],
    ]
    ],

    easydo.work

原文地址:https://www.cnblogs.com/stringfade/p/9038549.html

时间: 2024-10-18 18:17:05

Yii2 负载均衡找不到JS,CSS的相关文章

Nginx做负载均衡无法加载css,js

配置完nginx,访问tomcat时发现,tomcat显示如下图: 从这个状态可以看出,猜测可能是css和js这些文件没有加载. 不仅如此,访问部署在tomcat项目的页面也是一样的,不同nginx访问tomcat下的项目时这样的: 通过nginx作为代理服务器,访问到的页面是这样的: 这些情况显然都是因为通过nginx作为负载均衡服务器时候,无法正常加载css和js这些文件而出现这样的问题,通过一番搜索和查找,修改了nginx下的nginx.conf配置文件才得以正常显示,修改的配置如下: 增

[Yii2] 快速套模板,加载JS,CSS(HTML标签<base>)

刚开始学,弄了好久,不知道怎么加载JS.CSS,以及怎么不加载YII2自带的模板!其实真的好简单! 首先把模板放好位置, 加载JS,CSS,就在模板HTML页面加个标签:<base> base 标签的链接到JS,CSS的位置就好了,其他都不用动! <base>这个标签其实就是HTML默认打开方式与默认链接URL地址标签元素,详细了解base就在我文章里找吧! 上面弄完后,就差YII2自带的怎么去掉了,就是渲染的时候用renderPartial render和renderPartia

app端开发中,外部js是否需要下载到本地,到负载均衡

再一次app开发中,发现有引用的外部文件: 外部的文件不是应该下载到本地然后在引用这样不是更安全吗?(当时的心声)于是咨询了下经验丰富的同事: 引用外部的js文件时,优先使用非常快的CDN(Content Delivery Network 网络之上的内容分发网络,使客户端可以访问最近的边缘服务器,实现更快的加载,降低了网络阻塞,提高用户的访问响应速度). 假设,首次进入app index.html:index.js;css 等文件为1M ,需要加载的外部js等文件有6M.如果服务器的带宽很小,哪

Nginx负载均衡,反向代理,再从防火墙做转发后,css样式与端口丢失!

Nginx负载均衡,反向代理,再从防火墙做转发后,报错,用外网IP+端口访问,结果css样式与端口都丢失!!!!!内网IP+端口访问,正常! 解决思路:用chrome的network标签,分析项目的路径与端口!将配置文件中无用的干掉! 亲测改好的配置文件,注意注释信息!!!! vi conf/nginx.conf worker_processes  auto; worker_rlimit_nofile 10000; events {     worker_connections  2048;  

【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡

原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing Node.js v0.12的新特性 -- Cluster采用轮询调度算法来进行负载均衡 November 19, 2013 by Ben Noordhuis 欢迎来到由Node的核心提交者 Ben Noordhuis 和 Bert Belder撰写的系列博文的第一篇.本系列可能由7-8篇构成,主要涵盖

node.js cluster多进程、负载均衡和平滑重启

1 cluster多进程 cluster经过好几代的发展,现在已经比较好使了.利用cluster,可以自动完成子进程worker分配request的事情,就不再需要自己写代码在master进程中robin式给每个worker分配任务了. const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster

nginx负载均衡以及反向代理配置

记录一下方便以后自己查看 1.环境准备 lb-01:192.168.33.135 nginx-lb centos7 rs-01:192.168.33.131 apache-web centos6.x rs-02:192.168.33.132 nginx-web centos6.x 2.环境安装 lb-01 安装nginx,配置nginx源 # cat /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.

Nginx+tomcat配置集群负载均衡

转自:http://blog.csdn.net/bruce_6/article/details/38228299 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了.摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回

高可用负载均衡架构(1)

高可用负载均衡架构 1     前言 1.1  LVS介绍 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq): 1.1.1     静态调度 ①rr(Round Robin):轮询调度,轮叫调度 轮