2017-07-03 66 views
0

我在本地主机上的一个项目,在下列路线:本地主机路由在现场环境中工作吗?

,我目前从JavaScript数据发布到应用程序是这样的:

// Centralised, referenced from each javascript file: 
var baseUrl = 'http://127.0.0.1/projects/PROJECT_NAME/web/app_dev.php'; 

// The signup post URL is generated like this: 
var postUrl: baseUrl + "/signup", 

这适用于所有本地主机上的文件。

问题:

  • 在这个项目上线,做这些网址,还能用吗?
  • 是否有更简洁的方式来编写baseUrl,以便在项目启用时不需要更改?

道歉,如果这是一个明显的,但我目前只在本地主机工作。欢迎任何建议。 Symfony 3应用程序,XAMPP服务器,OSX。

编辑:

使用$就发帖的服务器。

+0

这完全取决于生产环境的配置。 – ceejayoz

+1

答: B有一个配置文件,其中包含基础url – rtfm

+1

我不确定你使用什么进行调用,'.ajax()'接受相关URL和[XMLHttpRequest.open()](https:// xhr.spec.whatwg.org/#request-url)没有指定url必须是绝对的,所以我认为它可以是相对的,所以你可能会逃脱相关的网址,而不用担心你的环境 –

回答

1

我强烈建议你为你的项目创建一个虚拟主机,并将它的webroot设置为你项目的web文件夹并从那里访问你的项目。

下面是关于如何做到这一点的XAMPP的MacOS的一个很好的教程: http://jonathannicol.com/blog/2012/03/11/configuring-virtualhosts-in-xampp-on-mac/

即:http://myproject.local

这将允许你通过写var postURL: "/signup"然后将被视为http://myproject.local/signup访问您的网址在您的本地环境或http://myprojectlive.com/signup您的现场环境。

这样可以为您节省很多配置和编码的麻烦。

1

当项目启动时,本地主机URL绝对不会起作用。

你应该做的是有一个构建过程,在开发过程中使用本地主机URL,并在网站生效时插入生产URL。

使用的WebPack,例如,你会做这样的事情在发展:

module.exports = { 
    URL: '"http://127.0.0.1"' 
} 

而这个生产:

module.exports = merge(devEnv, { 
    URL: '"http://example.com"' 
}) 

然后你再导入变量,可能分配它更简洁和描述如下:

const baseUrl = process.env.URL 

做完这个,你可以现在使用变量在任何地方通过连接将请求连接起来,例如,像这样的子目录:

`${baseUrl}/projects/PROJECT_NAME/web/app_dev.php` 
相关问题