【问题标题】:Do localhost routes work in live environments?localhost 路由是否在实时环境中工作?
【发布时间】:2017-12-07 05:54:17
【问题描述】:

我在 localhost 上有一个项目,路径如下:

我目前从 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",

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

问题:

  • 此项目上线后,这些 URL 是否仍然有效?
  • 是否有更简洁的方式来编写 baseUrl,以便在项目上线时无需更改它?

抱歉,如果这是一个明显的问题,但我目前只在 localhost 上工作。欢迎任何建议。 Symfony 3 应用程序、XAMPP 服务器、OSX。

编辑:

使用 $.ajax 向服务器发布帖子。

【问题讨论】:

  • 这完全取决于生产环境的配置。
  • A.不。 B 有一个配置文件,其中包含基本 url
  • 我不确定您使用什么来拨打电话,$.ajax() 接受相对网址,XMLHttpRequest.open() 没有指定网址必须是绝对网址,所以我假设它也可以是相对的,因此您可能可以摆脱相对 url 而不必担心您的环境

标签: javascript php symfony routes


【解决方案1】:

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

这是一个很好的教程,关于如何在 xampp for macOS 中做到这一点: http://jonathannicol.com/blog/2012/03/11/configuring-virtualhosts-in-xampp-on-mac/

即:http://myproject.local

这将允许您通过简单地编写 var postURL: "/signup" 来访问您的 URL,然后在您的本地环境中将被视为 http://myproject.local/signup 或在您的实时环境中被视为 http://myprojectlive.com/signup

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

【讨论】:

    【解决方案2】:

    当项目上线时,本地主机 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`
    

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多