我在我的应用程序中使用母版页,并且所有自定义样式和引导程序文件都包含在那里并且工作正常但是当我使用通配符例如localhost / final / User / id时所有引导程序和自定义样式链接都无法正常工作,所有文件位于公共文件夹
public class Login extends AppCompatActivity {
TextView LoginInfo;
ProgressBar LoadingCircle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
LoginInfo = (TextView) findViewById(R.id.LoginInfo);
LoadingCircle = (ProgressBar) findViewById(R.id.LoadingCircle);
RequestData();
}
private class LoadingDataURL extends AsyncTask<String, String, JSONArray> {
@Override
protected JSONArray doInBackground(String... params) {
URL url;
HttpURLConnection urlConnection = null;
JSONArray response = new JSONArray();
try {
url = new URL(params[0]);
urlConnection = (HttpURLConnection) url.openConnection();
String responseString = readStream(urlConnection.getInputStream());
response = new JSONArray(responseString);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return response;
}
private String readStream(InputStream in) {
BufferedReader reader = null;
StringBuffer response = new StringBuffer();
try {
reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ObjectAnimator fadeOutLoadingCircle = ObjectAnimator.ofFloat(LoadingCircle, LoadingCircle.ALPHA, 1,0);
fadeOutLoadingCircle.setDuration(1500);
AnimatorSet fadeOut = new AnimatorSet();
fadeOut.play(fadeOutLoadingCircle);
fadeOut.start();
return response.toString();
}
}
// Request Data
public void RequestData() {
if (isInternetAvailable() == true) {
LoadingDataURL client = new LoadingDataURL();
client.execute("https://xxxx");
}
}
// Internet available?
public boolean isInternetAvailable() {
Runtime runtime = Runtime.getRuntime();
try {
Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e) { e.printStackTrace();}
catch (InterruptedException e) { e.printStackTrace();}
return false;
}
}
这是我使用通配符
查看的屏幕截图这是我使用任何通配符时无效的所有文件的链接
答案 0 :(得分:2)
您应该使用asset()
帮助程序来构建CSS的链接:
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet">
如果您将css文件保存在public/css
目录中,它将对您有用。
答案 1 :(得分:2)
发生这种情况的原因是您编写了css文件路径的方式,该文件相对于您正在查看的页面。
因此,当您查看:localhost/final/user/id
时,浏览器将在此处查找css文件:localhost/final/user/css/bootstrap.css
Laravel有一些辅助方法可以消除设置资产文件(css,图像等)的痛苦。
如果您使用的是刀片,则可以使用asset()
方法,如下所示:
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet">
<link href="{{ asset('css/font-awesome.min.css') }}" rel="stylesheet">
<link href="{{ asset('css/portal-style.css') }}" rel="stylesheet">
<link href="{{ asset('css/portal-stylesheet.css') }}" rel="stylesheet">
答案 2 :(得分:1)
通常情况下,您可以将asset()
或secure_asset()
用于HTTPS,当资产(如css或js文件)位于public
文件夹中时,这两种方法都可以使用。
或者,如果您不使用公用文件夹。比url()
更适合你。
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet">
OR
<link href="{{ url('public/css/bootstrap.css') }}" rel="stylesheet">