我正在将Google Cloud Functions和基于Nodejs的普通网站一起使用。我在设置css
,images
和js
之类的公共文件的路径时遇到困难。
以下是我的结构
\
index.js
views
main.njk
public
css
style.css
images
image.png
js
main.js
index.js
是主要的Google功能,带有以下内容(显示了相关代码)
..
const app = express();
app.use(cors);
..
app.use(express.static(path.join(__dirname, '/public')));
..
app.set('view engine', 'njk');
..
nunjucks.configure('views', {
autoescape: true,
express: app
});
..
app.get('/', (req, res, next) => {
res.render('/main');
});
..
exports.funcName = functions.https.onRequest(app);
在main.njk
中,我使用以下相对路径加载CSS和js
..
<link rel="stylesheet" href="/css/style.css">
..
<script src="/js/main.js"></script>
但是,当我从浏览器加载URL时,css的路径显示为:
https://us-central1-project-id.cloudfunctions.net/css/style.css
,出现net::ERR_ABORTED 403
错误。我注意到它没有在函数名称中添加/css
。应该是
https://us-central1-project-id.cloudfunctions.net/funcName/css/style.css
我尝试将快速静态文件路径更改为:
app.use('/', express.static('public'));
和
app.use(express.static('public'));
仍然始终显示相同的路径错误。当我运行上述代码(通过运行NodeJS服务器)时,它可以工作。我应该做些什么更改才能获得相对于函数名称的路径?谢谢