路由Meteor/React应用程序,给它一个普通的HTML ;主页
我想用Meteor和React来服务一个网站,但我希望默认的主页是普通的HTML。像这样:路由Meteor/React应用程序,给它一个普通的HTML ;主页,meteor,routing,nginx-reverse-proxy,Meteor,Routing,Nginx Reverse Proxy,我想用Meteor和React来服务一个网站,但我希望默认的主页是普通的HTML。像这样: https://meteor.example.com/ =>没有JavaScript的HTML页面 https://meteor.example.com/meteor/ =>全反应流星体验 我知道我可以在/public文件夹中放置一个普通index.html页面,但是它需要被指定为https://meteor.example.com/index.html 我还没有找到一个教程来解决这个特殊情
https://meteor.example.com/ =>没有JavaScript的HTML页面
https://meteor.example.com/meteor/ =>全反应流星体验
我知道我可以在/public
文件夹中放置一个普通index.html页面,但是它需要被指定为https://meteor.example.com/index.html
我还没有找到一个教程来解决这个特殊情况。我找到了一个简单的解决方案,它不需要对Meteor应用程序进行任何更改。我正在使用nginx为流星网站服务。我让应用程序在本地端口上运行,并在nginx中设置代理规则:
server {
listen 80;
server_name example.com;
charset utf-8;
location ~ /(.+) {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
据我所知,这会将url请求传递给Meteor应用程序。如果public/
文件夹中有index.html
文件,则当请求http://example.com/
(如果我像最初那样使用location/
而不是location~/(.+)
,那么请求http://example.com/
被视为Meteor对默认页面的请求。)
部署
对于生产,我使用
meteor build --server-only ../example-package
。。。我将其上传到服务器并解压缩。然后,我将cd
放入bundle/programs/server
并以运行应用程序的用户身份运行npm install--production
。然后,我将文件夹添加为bundle/tmp/
和bundle/public/
,并将我的静态index.html
文件以及它需要的所有CSS和其他文件放在public/
文件夹中
目前我使用的是导出根URL=http://localhost &&export PORT=3000&&node main.js启动该应用程序,但我计划在完成所有正确的步骤后立即使用a。我找到了一个简单的解决方案,它不需要对Meteor应用程序进行任何更改。我正在使用nginx为流星网站服务。我让应用程序在本地端口上运行,并在nginx中设置代理规则:
server {
listen 80;
server_name example.com;
charset utf-8;
location ~ /(.+) {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
据我所知,这会将url请求传递给Meteor应用程序。如果public/
文件夹中有index.html
文件,则当请求http://example.com/
(如果我像最初那样使用location/
而不是location~/(.+)
,那么请求http://example.com/
被视为Meteor对默认页面的请求。)
部署
对于生产,我使用
meteor build --server-only ../example-package
。。。我将其上传到服务器并解压缩。然后,我将cd
放入bundle/programs/server
并以运行应用程序的用户身份运行npm install--production
。然后,我将文件夹添加为bundle/tmp/
和bundle/public/
,并将我的静态index.html
文件以及它需要的所有CSS和其他文件放在public/
文件夹中
目前我使用的是导出根URL=http://localhost &&export PORT=3000&&node main.js启动该应用程序,但我计划在完成所有正确的步骤后立即使用a。下面是使用with的示例 下面的代码将进入仅服务器端的文件中,例如meteor项目中的/server/main.js
WebApp.connectHandlers.use('/home', (req, res, next) => {
res.writeHead(200, {'Content-Type': 'text/html'});
const html = Assets.getText('home.html');
res.end(html);
});
下面是一个使用with的示例 下面的代码将进入仅服务器端的文件中,例如meteor项目中的/server/main.js
WebApp.connectHandlers.use('/home', (req, res, next) => {
res.writeHead(200, {'Content-Type': 'text/html'});
const html = Assets.getText('home.html');
res.end(html);
});
您是否考虑过使用WebApp定义服务器端路由以提供静态页面@这看起来很有希望,但是我没有看到关于WebApp代码应该在哪里的信息put@JamesNewton
WebApp
包使用类似于快速路线的@您想为/
路线提供一个最小的WebApp
示例吗?如果没有,我可以提供一个。@Jankapunkt一个关于/
路由的最小WebApp
示例就是我要寻找的答案。很抱歉耽搁了,我添加了一个简单的示例来帮助您。您是否考虑过使用WebApp定义服务器端路由来提供静态页面@这看起来很有希望,但是我没有看到关于WebApp代码应该在哪里的信息put@JamesNewtonWebApp
包使用类似于快速路线的@您想为/
路线提供一个最小的WebApp
示例吗?如果没有,我可以提供一个。@Jankapunkt一个关于/
路线的最小WebApp
示例将是我要寻找的答案。对于延迟,我已经添加了一个简单的示例来帮助您。