Also, ich habe ein bisschen ein Problem. Hier ist mein server.jsVue-Ressource kann keine statische Datei laden
require('dotenv').load();
const http = require('http');
const path = require('path');
const express = require('express');
const app = express();
const server = http.createServer(app).listen(8080,() => {
console.log('Foliage started on port 8080');
});
app.use(express.static(path.join(__dirname, '/public')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});
Was das bedeutet ist, dass für jeden /whatever
es gibt die index.html
Datei. Neben, dass dient es statische Dateien aus /public
Nun sieht meine index.html wie folgt aus:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Foliage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/foliage.css" media="screen" title="no title">
<script src="https://use.fontawesome.com/763cbc8ede.js"></script>
</head>
<body>
<div id="app">
<router-view :key="$router.currentRoute.path"></router-view>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="js/md5.js"></script>
<script src="js/cookies.js"></script>
<script src="js/dragula.js"></script>
<script src="js/build.js"></script>
</body>
</html>
alle der JS-Dateien und die Style-Dateien werden in geeigneter Weise aus public/js
und public/css
für diese geladen. In build.js
, die eine Webpack-ed vuejs App ist, verwende ich vue-resource, um eine andere Datei von zu laden. Das sieht dann so
page = {};
page.Template = "Index";
this.$http.get('themes/Barren/templates/'+page.Template+'.html').then((response) => {
console.log(response.body);
});
Allerdings ist diese Anforderung nicht geben Sie mir die Datei in public/themes/Barren/templates
. Stattdessen gibt es die eigene index.html-Datei zurück. Wie könnte ich das beheben?