Hexo部署到云服务器后CSS样式无效的问题

Hexo部署到云服务器后CSS样式无效的问题

01 前言

趁活动入手了一个云服务器(Linux),打算简单挂个博客上去,因为之前部署到github有了一些经验,所以还是选择使用Hexo。中间步骤略,部署完使用浏览器访问的时候,碰到一个比较诡异的现象:文字、图案等内容是有了,但是只是直接简单罗列出来的,CSS样式没有生效!
于是先F12简单检查一下浏览器网络请求情况,发现CSS文件请求也是正常的,也正常返回来内容了,但是就是没有渲染到页面!
就像这样:
样式无效

查了一通资料,Hexo配置文件也折腾了一番,还是没有解决。最后认真对比了一下跟GitHub的部署的那套有啥区别之后,发现原来坑是在NGINX代理上。

02 正文

相关软件版本如下:

Nginx:1.18.0
Hexo:7.0.0
Hexo 主题:butterfly,4.11.0

假设博客根目录为:/usr/local/example,先生成静态资源:

hexo clean && hexo g

然后就顺利生成public文件夹了,直接上NGINX代理。
接着,NGINX配置大概是这样的:

http {
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
  
    server {
        listen 80;
        server_name example.com;
        location / {
           expires 1h;
           gzip on;
           root /usr/local/example/public;
           index index.html;
        }
    }
}
events {
     worker_connections  1024;
     use epoll;
}

注意default_type,设置了默认文件类型是:application/octet-stream,这样会导致返回的CSS、JS等文件,Content-Type类型都是:application/octet-stream,虽然文件内容是请求回来了,但是由于文件类型未被浏览器正确识别(或者说浏览器不知道请求回来的XXX.css就是样式文件,XXXX.js就是JavaScript脚本文件),所以没有渲染到页面上!

认真看网络请求中的响应标头的Content-Type,确实是这样:
响应类型

找到了原因,那就好解决了,让不同类型的文件返回时Content-Type类型是对应的文件标识,比如css样式文件,返回类型应该是:text/css,而js文件,返回类型应该是:application/javascript,其他类型文件类似。

结合NGINX官方文档,可知用types来定义返回的文件类型标识,于是将NGINX配置文件修改如下:

http {
    sendfile        on;
    keepalive_timeout  65;
  
    server {
        listen 80;
        server_name example.com;
        location / {
           expires 1h;
           gzip on;
           root /usr/local/example/public;
           index index.html;
           types {
            text/html  html;
            image/gif  gif;
            image/jpeg jpg;
            image/png  png;
            image/vnd.microsoft.icon  ico;
            text/css   css;
            application/javascript  js;
          }
          default_type application/octet-stream;
        }
    }
}
events {
     worker_connections  1024;
     use epoll;
}

重启NGINX,搞定。
正常

03 后记

算是一个简单的问题,记录一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/234721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(六)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(SWO、COA、LSO、GRO、LO)简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

【pycharm】Pycharm中进行Git版本控制

本篇文章主要记录一下自己在pycharm上使用git的操作,一个新项目如何使用git进行版本控制。 文章使用的pycharm版本PyCharm Community Edition 2017.2.4,远程仓库为https://gitee.com/ 1.配置Git(File>Settings) 2.去Gitee创建…

Elasticsearch 8.9 refresh刷Es缓冲区的数据到Lucene,更新segemnt,使数据可见

一、相关API的handler1、接受HTTP请求的hander(RestRefreshAction)2、往数据节点发送刷新请求的action(TransportRefreshAction)3、数据节点接收主节点refresh传输的action(TransportShardRefreshAction) 二、在IndexShard执行refresh操作1、根据入参决定是使用lucene提供的阻塞…

什么是神经网络的非线性

大家好啊,我是董董灿。 最近在写《计算机视觉入门与调优》(右键,在新窗口中打开链接)的小册,其中一部分说到激活函数的时候,谈到了神经网络的非线性问题。 今天就一起来看看,为什么神经网络需…

亚马逊云科技re_Invent 2023产品体验:亚马逊云科技产品应用实践 国赛选手带你看Elasticache Serverless

抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是TroubleShooting竞赛,对应的分别为AWS GameDay和AWS Jam,想必也有朋友玩过此类竞赛&…

RTMP流设置超时时间失败

使用FFmpeg(版本是5.0.3)将rtmp流作为输入,设置超时时间(使用-timeout参数),结果报错:Cannot open Connection tcp://XXX:1935?listen&listen_timeout 通过./ffmpeg -help full 命令查看FFmpeg帮助&am…

【论文笔记】Gemini: A Family of Highly Capable Multimodal Models——细看Gemini

Gemini 【一句话总结,对标GPT4,模型还是transformer的docoder部分,提出三个不同版本的Gemini模型,Ultra的最牛逼,Nano的可以用在手机上。】 谷歌提出了一个新系列多模态模型——Gemini家族模型,包括Ultra…

jenkins设置中文

安装以下两个插件 Locale plugin Localization: Chinese (Simplified) 在jenkins的system配置中找到locale配置项 在locale配置项的默认语言中填入以下内容保存 zh_CN 重启jenkins即可

Gitzip插件【Github免翻下载】

今天给大家推荐一个github下载的插件,平常大家下载应该无外乎就是以下两种: Download zip利用git clone 但是这两种各有各的弊端,前者一般需要科学上网才可以,后者下载不稳定经常中途断掉。 今天给推荐一个款浏览器插件-Gitzip.大…

uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!

(暂时用不到的也建议收藏一下,因为文章持续更新中) 最新更改时间:20023-12-10 第一次做App应用开发相信大家一定都遇到过华为应用市场审核的“驳回”! 有些问题一看就明白可以立马修改,而有一些问题修改意…

【计算机网络基础1】网络层次划分和OSI七层网络模型

1、网络层次划分 为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open Syste…

软件工程考试复习

第一章、软件工程概述 🌟软件程序数据文档(考点) 🌟计算机程序及其说明程序的各种文档称为 ( 文件 ) 。计算任务的处理对象和处理规则的描述称为 ( 程序 )。有关计算机程序功能、…

C语言 内联函数 + 递归函数

函数分类 内联函数 1)内联函数在编译时将函数的代码直接插入到调用它的地方,而不是通过函数调用的方式执行,从而减少了函数调用的开销,提高了代码的执行速度 2)使用 inline 关键字来声明 3)将函数声明为内联…

分层网络模型(OSI、TCP/IP)及对应的网络协议

OSI七层网络模型 OSI(Open System Interconnect),即开放式系统互连参考模型, 一般都叫OSI参考模型,是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构,每一层是一个模块,用于完成某种功…

pytorch一致数据增强

分割任务对 image 做(某些)transform 时,要对 label(segmentation mask)也做对应的 transform,如 Resize、RandomRotation 等。如果对 image、label 分别用 transform 处理一遍,则涉及随机操作的…

【概率方法】朗之万动力学 Langevin Dynamics

目前我们了解到采样方法有很多种,按照从朴素到高效的演变顺序大致是 反函数采样蒙特卡洛模拟(求统计量)接受-拒绝采样MCMC HM 算法Gibbs 采样 接上一篇文章,Gibbs 采样能在有条件分布 p ( x d ′ ∣ x − d ) p(\mathbf{x}_{d…

头歌-Python 基础

第1关:建模与仿真 1、 建模过程,通常也称为数学优化建模(Mathematical Optimization Modeling),不同之处在于它可以确定特定场景的特定的、最优化或最佳的结果。这被称为诊断一个结果,因此命名为▁▁▁。 填空1答案:决…

【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第四次作业

云数据库研究 云计算与云数据库背景 云计算(cloud computing)是 IT 技术发展的最新趋势,正受到业界和学术界的广泛关注。云计算是在分布式处理、并行处理和网格计算等技术的基础上发展起来的,是一种新兴的共享基础架构的方法。它…

大数据技术7:基于StarRocks统一OALP实时数仓

前言: 大家对StarRocks 的了解可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris ,而 StarRocks 实际上原名叫做 Doris DB ,他相当于是一个加强版的也就是一个 Doris ,也就是说 Doris 所有的功能 StarRocks 都是有的&a…

this.$emit(‘update:isVisible‘, false)作用

这个写是不是很新颖&#xff0c;传父组件传值&#xff01;这是什么鬼。。。 假设你有以下逻辑业务。在A页面弹出一个组件B&#xff0c;A组件里面使用B组件&#xff0c;是否展示B组件你使用的是baselineShow变量控制&#xff01; <BaselineData :isVisible.sync"basel…