我已經對此問題做了一些研究,但所有可能的解決方案都不適用於我我不知道爲什麼。發送快遞中的靜態文件不適用於不同的路由,只在根路由
我使用page.js和表達來開發我的小應用程序。當我服務我的靜態文件時,在我的「/」(根)路徑中工作正常。但是當我導航到其他路由時,例如「/ client-profile /:user_id」,看起來好像我的靜態文件無法使用,因爲我的模板只顯示斷開的鏈接,有時不會顯示任何內容。
當我在瀏覽器中通過「/」路徑中的一個圖像使用「檢查元素」工具時,它會向我顯示例如「/image.jpg」,但當我轉到其他路由時(「/ client-profile /:USER_ID「)使用相同的圖像,它顯示我 」/client-profile/image.jpg「
這裏是我的代碼:
server.js(快遞)
var express = require('express')
var path = require('path')
lisaPosApp.use(express.static(path.join(__dirname, '/public')))
lisaPosApp.get('/client-profile/:user_id', function (req, res) {
res.render('index', { title : '.: LISA | Usuarios | Loyalty Improvement Service Application :.' })
})
index.js(pagejs)
var page = require('page')
var templateClientProfile = require('./template')
var request = require('superagent')
var header = require('../header-n-left-menu')
var utils = require('../utils')
page('/client-profile/:user_id', utils.loadUserAuth, header, loadClientInfo, function (ctx, next) {
$('title').html(`.: LISA | ${ctx.user.username} | Loyalty Improvement Service Application :.`)
var mainContainer = document.getElementById('main-container')
mainContainer.innerHTML = ''
mainContainer.appendChild(templateClientProfile(ctx.user))
document.getElementById('section-preloader').remove()
$('select').material_select()
$('ul.tabs').tabs()
})
function loadClientInfo (ctx, next) {
request
.get(`/api/client-profile/${ctx.params.user_id}`)
.end(function (err, res) {
if (err) return console.log(err)
ctx.user = res.body
next()
})
}
(注:我所有的靜態文件,沒有mattter什麼類型,是一個名爲項目的根文件夾「公共」文件夾中)
在進步,非常感謝!
任何你給的路徑應該是相對於公共文件夾而不是任何特定的路線 – binariedMe
對不起,你能解釋我的答案嗎? – maoooricio