站点文件上传到服务器后相对路径不起作用
relative paths not functioning after site files uploaded to server
我使用“localhost”在本地开发了一个网站,并使用相对路径结构创建了所有网站 link、按钮等。我的服务器代码是用 Node.js/Express 编写的。我也在使用 .ejs 作为模板引擎...因此我所有的服务器网页都在一个名为“views/pages”的文件夹中。
使用这个结构,例如,我有一个按钮 link 编码为:
<a href="/_landing" class="btn btn-primary" role="button">Enter Site</a>
在我的开发 'localhost' 机器上,这足以在我的服务器脚本中调用“_landing”路由,然后将呈现要提供的正确页面......没有任何困难。服务器代码将读取如下内容:
app.get('/', function (req, res) {
res.render('pages/_splash');
});
app.get('/_landing', function(req, res) {
res.render('pages/_landing', {user_stat: _subscriber});
});
现在我已经使用 Plesk 软件将站点文件上传到 Windows 服务器。站点文件和文件夹位于名为“httpdocs”的目录中。现在看来我的相对路径 links 坏了。出于某种原因再次使用上面的按钮 link 作为示例,它现在想要路由到“https://example.com/_landing”...这显然是不正确的。为什么相对路径现在似乎忽略了 Node.js...中的路由调用?
非常感谢任何建议,由于无数未记录的问题,我很难在线发布我的网站...向我的服务器支持发布请求将毫无用处,因为他们不响应“编码问题”。我先谢谢你了。
对于几周后可能感兴趣的任何人,我能够确定这里的问题。我最终争取到了 Plesk 的支持来解决这个问题。 Plesk 技术人员向我证实,我描述的问题是由 Plesk 软件平台中的错误引起的。
解决该错误的方法是在 'web.config' 文件中插入一些额外的代码,如下所示:
<rewrite>
<rules>
<remove name="startup-file for site #1" />
<rule name="startup-file for site #1">
<match url="/*" />
<conditions />
<serverVariables />
<action type="Rewrite" url="/test2.js" />
</rule>
</rules>
</rewrite>
此代码将出现在 'web.config' 文件中的“/httpErrors”之后和“/system.webServer”中...'test2.js' 应设置为 JS 脚本文件为您的域。
我使用“localhost”在本地开发了一个网站,并使用相对路径结构创建了所有网站 link、按钮等。我的服务器代码是用 Node.js/Express 编写的。我也在使用 .ejs 作为模板引擎...因此我所有的服务器网页都在一个名为“views/pages”的文件夹中。
使用这个结构,例如,我有一个按钮 link 编码为:
<a href="/_landing" class="btn btn-primary" role="button">Enter Site</a>
在我的开发 'localhost' 机器上,这足以在我的服务器脚本中调用“_landing”路由,然后将呈现要提供的正确页面......没有任何困难。服务器代码将读取如下内容:
app.get('/', function (req, res) {
res.render('pages/_splash');
});
app.get('/_landing', function(req, res) {
res.render('pages/_landing', {user_stat: _subscriber});
});
现在我已经使用 Plesk 软件将站点文件上传到 Windows 服务器。站点文件和文件夹位于名为“httpdocs”的目录中。现在看来我的相对路径 links 坏了。出于某种原因再次使用上面的按钮 link 作为示例,它现在想要路由到“https://example.com/_landing”...这显然是不正确的。为什么相对路径现在似乎忽略了 Node.js...中的路由调用?
非常感谢任何建议,由于无数未记录的问题,我很难在线发布我的网站...向我的服务器支持发布请求将毫无用处,因为他们不响应“编码问题”。我先谢谢你了。
对于几周后可能感兴趣的任何人,我能够确定这里的问题。我最终争取到了 Plesk 的支持来解决这个问题。 Plesk 技术人员向我证实,我描述的问题是由 Plesk 软件平台中的错误引起的。
解决该错误的方法是在 'web.config' 文件中插入一些额外的代码,如下所示:
<rewrite>
<rules>
<remove name="startup-file for site #1" />
<rule name="startup-file for site #1">
<match url="/*" />
<conditions />
<serverVariables />
<action type="Rewrite" url="/test2.js" />
</rule>
</rules>
</rewrite>
此代码将出现在 'web.config' 文件中的“/httpErrors”之后和“/system.webServer”中...'test2.js' 应设置为 JS 脚本文件为您的域。