2017-03-23 70 views
1

我已經對此問題做了一些研究,但所有可能的解決方案都不適用於我我不知道爲什麼。發送快遞中的靜態文件不適用於不同的路由,只在根路由

我使用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什麼類型,是一個名爲項目的根文件夾「公共」文件夾中)

在進步,非常感謝!

+0

任何你給的路徑應該是相對於公共文件夾而不是任何特定的路線 – binariedMe

+0

對不起,你能解釋我的答案嗎? – maoooricio

回答

0

當您使用express.static('/public')你應該把你所有的靜態資源的公共文件夾中,並把相對路徑在HTML頁面中是這樣的: 的index.js文件,該文件是在公共目錄,寫

<script src="/index.js"></script> 
+0

在「this」和「write」之後,你在回答中放了些什麼?如果是這樣,我看不到它。感謝您的幫助 – maoooricio

+0

我不理解你。 – binariedMe

+0

在你的答案中,你寫下「你的html頁面是這樣的:對於index.js」。在這部分答案中你是什麼意思與「:」 – maoooricio

相關問題