css - React 生产在桌面和移动设备的 css 文件之间困惑

标签 css reactjs apache gzip production-environment

我正在用 React 开发一个网站。为了区分移动用户和桌面用户,我使用了一个我在所有页面上集成的小脚本:

if (/Android|iPhone/.test(navigator.userAgent)) require("link/to/mobile/stylesheet");
else require("link/to/desktop/stylesheet");

问题是,在开发构建期间它运行良好,但是当我将生产版本发送到我的 Apache 服务器时,它混合了两种样式。我很确定这是因为 gzip 压缩(将所有 css 统一在一个文件中),但我完全不知道如何避免它。另外,我在互联网上发现没有人遇到同样的问题。有什么想法吗?

这里有两张图片,一张是它应该看起来的样子,另一张是生产版本。这对网站的其他部分来说更糟。 Production (messed up one) Original One

最佳答案

我们搬到了Chat ,

回顾:

create-react-app 用于设置元素
create-react-app 使用 webpack 作为它的打包器,

运行本地开发服务器时,不会捆绑 css 文件。但是,当使用 npm build --production 创建生产版本时。默认配置会将所有 css 打包到 1 个文件中。

解决方案:

要么确保捆绑的 css 句柄对移动设备和桌面设备都有效。 IE 通过使用 media queries
或者修改 webpack 配置以创建 2 个单独的 css 文件。

Quentin 将尝试通过 webpack 分离 css 文件。使用这个 article作为起点。

我祝他好运。

关于css - React 生产在桌面和移动设备的 css 文件之间困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55992457/

相关文章:

html - 如何在 Flexbox 中使用 Order

javascript - 在 ReactJS 中禁用上下文菜单

reactjs - 使用 React 测试库测试登录功能

html - 如何创建不同的过渡/动画延迟?

php - 如何在 PHP 中动态调整图像大小

html - 使用 float with canvas 的 CSS 布局问题

node.js - 部署到 heroku 的 React/Node 应用程序显示空白屏幕

Apache 忽略具有多个 SSL 域的 documentroot

php - 在 cent0s 6.7 中安装 php-soap 未显示在 php-info 中

javascript - 如何在我的 javascript 文件和 php 文件之间创建桥接代码以保护 MySQL 信息?