-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
umi3.x ssr 疑问 #4808
Comments
用的是egg,遇到相同问题。部署的时候js,css 的content-type都为text/html async index() {
const { ctx } = this;
global.host = `${ctx.request.protocol}://${ctx.request.host}`;
global.href = ctx.request.href;
const render = require('../public/umi.server');
ctx.set('Content-Type', 'text/html')
if(/.css/.test(ctx.request.url)){
ctx.set('Content-Type', 'text/css')
}
if(/.js/.test(ctx.request.url)){
ctx.set('Content-Type', 'application/javascript')
}
const { err, html } = await render({
path: ctx.request.url,
});
if (err) {
ctx.body = '404 Not Found';
return;
}
ctx.body = html;
} 不起作用,最后都访问html文件资源了。。。 |
@ycjcl868 部署的时候js,css 的content-type都为text/html, 这是什么问题呢?如何解决呢,准备上线,部署不了。。。 |
@SilentFlute 解决了吗,我改manifest下的路径没作用,public index.html 也不起作用,哎。 |
你是遇到什么问题了?我用egg是没问题的,build好是可以启动,访问的,能描述下你遇到的问题么? |
@williamnie build得后运行start, 静态文件都访问不到, 能加个微信不? |
目前的配置: public 下 app/public/umi.server.js 2.2 MB 708.0 KB
app/public/umi.55fcf70d.js 1.4 MB 418.5 KB
app/public/umi.327b84b5.css 111.0 KB 20.8 KB manifest.json {
"umi.css": "/umi.327b84b5.css",
"umi.js": "/umi.55fcf70d.js",
"index.html": "/index.html",
"static/photoswipe.css": "/static/default-skin.f64c3af3.svg"
} config.default.js config.assets = {
publicPath: '/app/public/',
devServer: {
debug: true,
command: 'umi dev',
port: 8000,
env: {
APP_ROOT: process.cwd() + '/app/web',
BROWSER: 'none',
ESLINT: 'none',
SOCKET_SERVER: 'http://172.16.96.21:8000',
PUBLIC_PATH: 'http://172.16.96.21:8000',
},
},
}; public-index.html <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"
/>
<link rel="stylesheet" href="/umi.327b84b5.css" />
<script>
window.routerBase = "/";
</script>
<script>
window.publicPath = "/";
</script>
<script>
//! umi version: 3.2.0-beta.12
</script>
<script src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<script src="//as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script>
<script>
if ("addEventListener" in document) {
document.addEventListener(
"DOMContentLoaded",
function () {
FastClick.attach(document.body);
},
false
);
}
if (!window.Promise) {
document.writeln(
'<script src="//as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"' +
">" +
"<" +
"/" +
"script>"
);
}
</script>
<title>自查</title>
</head>
<body>
<div id="root"></div>
<script src="/umi.55fcf70d.js"></script>
</body>
</html> 尝试换了几次路径无果 |
没有解决....换nextjs了 |
解决了,是umi的bug,你把hash去掉就好了。 |
请问下部署的具体步骤是什么呢?我copy的官方的代码,但是访问不到页面,难受…… |
贴下你的配置,和部署步骤,我看下能不能帮忙解决,目前umi存在一些问题:
|
您好,我现在的页面出来了,但是样式、图片什么的都没有,我发现是对于所有的文件请求响应头的Content-type都是text/html,然后我自己写了一个简单的判断,设置不同文件用不同的响应头,但是也不起作用,图片、样式文件的加载状态码都是200,但是内容不对,我的umi配置如下: 我的部署是按照官方文档说的,用一个Node服务,引用打包之后生成的umi.server.js文件,如下图: 请帮我看一下,感谢您! |
我的配置是:umi:3.2.3,node: 11.14.0,系统是:win10,刚刚忘记说了,不好意思! |
你说的是.umirc.js中的hash配置吗?这就尴尬了, 我没有使用hash.... |
大哥,你解决了吗?我也没有用hash,我们也是想从nextjs换过来…… |
你的publicPath配置是什么?打包输出到哪里了?是否能通过连接直接访问到umi.js和umi.css? |
你是用的egg还是express?遇到的和@CassielLee是同样的问题么? |
publicPath我没有配置,就是默认的配置,打包文件都输出到dist文件夹下了,我和楼主的问题一样的 |
稍微改了一下你贴出来的git的复现地址,已经能出来了,我贴下代码,主要是服务端的代码写的不对,
|
看下我上面的回复,我在你的git复现仓库上改的,已经没问题了,主要是server.js的问题 |
https://github.com/CassielLee/umi3-ssr-demo.git 这个是我的代码,您看下,感谢~ |
看了一下,是withLayout的高阶组件的问题,加上它以后就不行了,还没具体看,暂时可以通过直接饮用Layout组件加在页面或者是通过路由来fix这个问题。
|
好的。感谢您! |
@williamnie 大家互相引用导致回答好长, 看起来好累, 哈哈
|
是的,如果都交给express来做,就需要配置express的静态目录,让资源直接走静态,而页面的路由走到umi.server进行render页面。如果对服务端了解不多,建议使用egg,方便,都是配置好的,最后直接用nginx将所有路由都转发给egg就行了 |
@williamnie 哦哦, 好的, 了解, 再次感谢! |
|
@williamnie |
What happens?
tdk问题
title description keywords
开发环境, title的内容, 页面显示的和源码中的不一样, 但是keywords description是一样的, build之后是正常的
开发环境:
build之后:
不是太明白是什么问题, build之后查看源码是对的倒没什么问题, 但始终感觉有点问题
部署相关问题
copy的文档中的express的代码, 打包之后, 本地起一个服务模拟部署到线上/测试环境的情形, 但遇到这么几个问题, 希望大佬们能抽空帮忙看看:
ie: 9
}, 但是打包产物dist/umi.js中依旧有箭头函数
之前用nextjs的话部署是用它自己自带的next start, 然后启动了ssr的服务之后部署, 然后nginx反代到这个ssr服务即可
Mini Showcase Repository(REQUIRED)
https://github.com/SilentFlute/umi3.x-ssr.git
How To Reproduce
yarn -> 安装依赖
yarn start -> 本地开发模式
yarn build -> 打包
node server.js -> 本地启动node服务模拟部署
Context
求帮助, 感谢
The text was updated successfully, but these errors were encountered: