我尝试了以下操作,但不起作用:
console.log(process.env.BASE_URL); #output: undefined
说我的heroku应用程序的主机名是:https://RyanCameron-app.herokuapp.com
我应该如何在heroku上获取该base_url?
我正在寻找一种解决方案,以避免分别取消注释/注释以下行:
const url = 'https://RyanCameron-app.herokuapp.com/projects/eovendo' //production
//const url = 'http://localhost:3000' //development
这已经变得很烦人了。
答案 0 :(得分:4)
这将检查您是否处于生产或开发模式,并根据模式分配相应的URL。
const production = 'https://examplePage.com';
const development = 'http://localhost:3000/';
const url = (process.env.NODE_ENV ? production : development);
说明
如果您在本地主机生产模式上运行,process.env.NODE_ENV
将解析为undefined
。如果您已部署应用程序生产模式,则返回production
。
注意:仅仅因为您已经部署了应用程序并不一定意味着您已经更改了NODE_ENV
利用JavaScript窗口提取网址
const url = window.location.origin;
答案 1 :(得分:1)
// This article: // https://stackoverflow.com/questions/21246818/how-to-get-the-base-url-in-javascript
var base_url = window.location.origin; // "http://stackoverflow.com"
var host = window.location.host; // stackoverflow.com
var pathArray = window.location.pathname.split( '/' ); // ["", "questions", "21246818", "how-to-get-the-base-url-in-javascript"]
答案 2 :(得分:0)
设置配置变量HEROKU_APP_NAME或HOST-很明显。您可以在后端访问它,但也可以将其写到DOM中,并让前端从那里访问它。