我正在开发一个使用Express、JS和EJS视图引擎的web应用程序,它将部署在AWS放大器上。所有东西在本地主机上都能正常工作,但是当我将静态文件(css,js)部署到扩容上时,它会有问题。这一问题的详细情况如下:
1.问题描述:
/register:真正的路径将是https://myuser.amplifyapp.com/global/js/Base.js/而不是https://myuser.amplifyapp.com/register/global/js/Base.js/)2.我的源代码结构如下:
| app.js
| package-lock.json
| package.json
+---bin
+---dist
| | app.js
| | error.ejs
| | index.html
| | package.json
| | register.ejs
| | verify.ejs
| +---assets
| +---global
| +---javascripts
+---node_modules
+---public
| +---assets
| +---global
| +---javascripts
| index.html
+---routes
\---views'public'设置了静态文件夹app.use(express.static(path.join(__dirname, 'public')));<link rel="stylesheet" href="global/vendor/animsition/animsition.css">
<script src="global/vendor/animsition/animsition.js"></script>"build": "del-cli dist && mkdir dist && ncp public dist && ncp views dist && copyfiles app.js dist && copyfiles package.json dist"amplify.yaml中的配置是:frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
baseDirectory: dist
files:
- '**/*'
cache:
paths:
- node_modules/**/*3.我尝试过的:我在stackorverflow中阅读了很多问题并遵循了他们的建议,但是没有什么效果。
'/'或'../'添加到静态文件的链接中:<link rel="stylesheet" href="/global/vendor/animsition/animsition.css">
<script src="/global/vendor/animsition/animsition.js"></script>我该如何解决这个问题?如果你能给我任何建议,我将不胜感激。非常感谢!
发布于 2020-11-27 02:15:00
AWS扩容是静态的网络托管服务(仅限于前端),它不适用于nodejs + ejs。
这意味着您无法创建一个具有特定端口号的服务器,但可以使用express构建REST,而不是渲染页面。
我认为你应该把你的网站放到EC2,而不是放大。
你可以看看放大常见问题
https://stackoverflow.com/questions/65006304
复制相似问题