Nodejs发送文件html页面

我有这段代码,允许我从特定文件夹打开一个 HTML 页面,如果我使用server.js打开该 HTML 页面,那么它使用所有 css 和 jquery 文件生成的页面,但如果我尝试将 get 语句移动到路由文件夹,那么页面已生成,但没有任何 css 和 jquery 文件,我不知道为什么!


我在 server.js 中为生成 HTML 页面所做的工作如下,效果很好:


const folderPath = __dirname + '/public/AppTemplate/src'

app.use(express.static(folderPath))

app.use(bodyParser.urlencoded({ extended: true }));

app.get('/', function (req, res) {

  res.sendFile(path.join(__dirname + '/public/AppTemplate/src/index.html'));

});

但我现在尝试的是从routes.js获取html页面:


步骤1:我在server.js中实现了这个语句


app.use('/users', require('./backend/routes/profile.routes.js'));

步骤2:我在routes.js中尝试了这个语句,并进行了简单的修改:D:


router.get('/profile', function (req, res) {

  const dirname = __dirname;

  console.log(dirname)

  const newpath = dirname.length - 14;

  const newP = dirname.substring(newpath, dirname.lastIndexOf("/"));

  console.log(newP);

res.sendFile(path.join(newP+ '/public/AppTemplate/src/02-ProfilePage.html'));

});

步骤 2 正在工作,但我无法获取位于以下位置的所有关联文件(jquery css ...)


/public/AppTemplate/src

输出图像如下:

https://img1.sycdn.imooc.com/65ae11be00015fba06510200.jpg

希望我提到了一切,最好的问候,



吃鸡游戏
浏览 104回答 1
1回答

LEATH

这是因为内容的02-ProfilePage.html路径不正确。检查脚本标签中的路径。如果有斜杠,则意味着它已经在/public/AppTemplate/src您指定的目录中。例如,/js/file.js实际上会指向/public/AppTemplate/src/js/file.js/也许尝试在脚本标记中的路径前面添加。例子:/css/x/y/z/代替css/x/y/z您必须将 a 附加/到脚本/链接标记中的所有路由才能成功加载本地资源。如果可能,您可以使用代码编辑器或 IDE 中的查找和替换功能来加快该过程。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5