【发布时间】:2017-01-10 10:46:33
【问题描述】:
我使用这个命令为一个 laravel 站点启动 ngrok,即 testsite.local:
ngrok http -host-header=rewrite testsite.local:80
我在/etc/hosts 中定义了testsite.local 以映射到127.0.0.1
这行得通,Ngrok 启动得很好,现在在某个随机的 *.ngrok.io 地址上为本地站点提供服务,我可以访问该地址。但是 laravel 应用程序中的所有 URL(例如,内部链接,或用于加载 css 或 js 文件的 URL)都是我本地定义的域的绝对 URL,例如 http://testsite.local/news 或 http://testsite.local/css/styles.css。换句话说,我可以很好地加载网站,但其他人只会看到一堆没有样式的 html 并得到一个无法正常运行的网站。
对于使用 ngrok 并在其项目中具有绝对 URL 的任何人来说,这一定是一个普遍问题,但 google 并没有提供任何有用的东西。
我想到了两种可能的方法:
- 将应用程序中的所有链接重写为相对的而不是 绝对的(哦,上帝,请不要)
- 任何想要通过 *.ngrok.io url 访问我的站点的客户端都必须将他们自己的 /etc/hosts 文件中的“testsite.local”域映射到 ngrok.io url。
这些方法可能行得通,但这似乎太过分了……难道没有其他人可以做的吗?
解决方案
【问题讨论】:
-
我认为您不应该将绝对链接链接到 css 等。但是我相信您可以使用 .htaccess 文件重新路由网址
-
您好,在 WordPress 社区中,我们遇到了与 Wordpress 经常使用绝对 URL 相同的问题。通常采用的解决方案是通过使用 WordPress 内部挂钩(例如github.com/optimizamx/odt-relative-urls)将绝对 URL 动态转换为相对 URL。如果您的应用不是基于事件的,我不确定您会如何做同样的事情......
-
在 httpd.conf 中将 DocumentRoot 和 Directory 设置为项目的路径。 ` DocumentRoot "C:/xampp/htdocs/projectName" `
-
似乎没有任何回复的人理解您的问题。我有同样的问题。您是否让 ngrok 使用绝对网址?
-
@Guerrilla 我在这里回答了这个问题:stackoverflow.com/questions/50194923/…